<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "https://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/xhtml;charset=UTF-8"/>
<meta http-equiv="X-UA-Compatible" content="IE=9"/>
<meta name="generator" content="Doxygen 1.9.1"/>
<meta name="viewport" content="width=device-width, initial-scale=1"/>
<title>Doxygen: pcl::Hough3DGrouping&lt; PointModelT, PointSceneT, PointModelRfT, PointSceneRfT &gt; 模板类 参考</title>
<link href="tabs.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="jquery.js"></script>
<script type="text/javascript" src="dynsections.js"></script>
<link href="navtree.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="resize.js"></script>
<script type="text/javascript" src="navtreedata.js"></script>
<script type="text/javascript" src="navtree.js"></script>
<link href="search/search.css" rel="stylesheet" type="text/css"/>
<script type="text/javascript" src="search/searchdata.js"></script>
<script type="text/javascript" src="search/search.js"></script>
<link href="doxygen.css" rel="stylesheet" type="text/css" />
</head>
<body>
<div id="top"><!-- do not remove this div, it is closed by doxygen! -->
<div id="titlearea">
<table cellspacing="0" cellpadding="0">
 <tbody>
 <tr style="height: 56px;">
  <td id="projectalign" style="padding-left: 0.5em;">
   <div id="projectname">Doxygen
   </div>
  </td>
 </tr>
 </tbody>
</table>
</div>
<!-- end header part -->
<!-- 制作者 Doxygen 1.9.1 -->
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
var searchBox = new SearchBox("searchBox", "search",false,'搜索','.html');
/* @license-end */
</script>
<script type="text/javascript" src="menudata.js"></script>
<script type="text/javascript" src="menu.js"></script>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(function() {
  initMenu('',true,false,'search.php','搜索');
  $(document).ready(function() { init_search(); });
});
/* @license-end */</script>
<div id="main-nav"></div>
</div><!-- top -->
<div id="side-nav" class="ui-resizable side-nav-resizable">
  <div id="nav-tree">
    <div id="nav-tree-contents">
      <div id="nav-sync" class="sync"></div>
    </div>
  </div>
  <div id="splitbar" style="-moz-user-select:none;" 
       class="ui-resizable-handle">
  </div>
</div>
<script type="text/javascript">
/* @license magnet:?xt=urn:btih:cf05388f2679ee054f2beb29a391d25f4e673ac3&amp;dn=gpl-2.0.txt GPL-v2 */
$(document).ready(function(){initNavTree('classpcl_1_1_hough3_d_grouping.html',''); initResizable(); });
/* @license-end */
</script>
<div id="doc-content">
<!-- window showing the filter options -->
<div id="MSearchSelectWindow"
     onmouseover="return searchBox.OnSearchSelectShow()"
     onmouseout="return searchBox.OnSearchSelectHide()"
     onkeydown="return searchBox.OnSearchSelectKey(event)">
</div>

<!-- iframe showing the search results (closed by default) -->
<div id="MSearchResultsWindow">
<iframe src="javascript:void(0)" frameborder="0" 
        name="MSearchResults" id="MSearchResults">
</iframe>
</div>

<div class="header">
  <div class="summary">
<a href="#pub-types">Public 类型</a> &#124;
<a href="#pub-methods">Public 成员函数</a> &#124;
<a href="#pro-methods">Protected 成员函数</a> &#124;
<a href="#pro-attribs">Protected 属性</a> &#124;
<a href="classpcl_1_1_hough3_d_grouping-members.html">所有成员列表</a>  </div>
  <div class="headertitle">
<div class="title">pcl::Hough3DGrouping&lt; PointModelT, PointSceneT, PointModelRfT, PointSceneRfT &gt; 模板类 参考</div>  </div>
</div><!--header-->
<div class="contents">

<p>Class implementing a 3D correspondence grouping algorithm that can deal with multiple instances of a model template found into a given scene. Each correspondence casts a vote for a reference point in a 3D Hough Space. The remaining 3 DOF are taken into account by associating each correspondence with a local Reference Frame. The suggested PointModelRfT is <a class="el" href="structpcl_1_1_reference_frame.html">pcl::ReferenceFrame</a>  
 <a href="classpcl_1_1_hough3_d_grouping.html#details">更多...</a></p>

<p><code>#include &lt;<a class="el" href="hough__3d_8h_source.html">hough_3d.h</a>&gt;</code></p>
<div class="dynheader">
类 pcl::Hough3DGrouping&lt; PointModelT, PointSceneT, PointModelRfT, PointSceneRfT &gt; 继承关系图:</div>
<div class="dyncontent">
 <div class="center">
  <img src="classpcl_1_1_hough3_d_grouping.png" usemap="#pcl::Hough3DGrouping_3C_20PointModelT_2C_20PointSceneT_2C_20PointModelRfT_2C_20PointSceneRfT_20_3E_map" alt=""/>
  <map id="pcl::Hough3DGrouping_3C_20PointModelT_2C_20PointSceneT_2C_20PointModelRfT_2C_20PointSceneRfT_20_3E_map" name="pcl::Hough3DGrouping_3C_20PointModelT_2C_20PointSceneT_2C_20PointModelRfT_2C_20PointSceneRfT_20_3E_map">
<area href="classpcl_1_1_correspondence_grouping.html" title="Abstract base class for Correspondence Grouping algorithms." alt="pcl::CorrespondenceGrouping&lt; PointModelT, PointSceneT &gt;" shape="rect" coords="0,56,497,80"/>
<area href="classpcl_1_1_p_c_l_base.html" alt="pcl::PCLBase&lt; PointModelT &gt;" shape="rect" coords="0,0,497,24"/>
  </map>
</div></div>
<table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-types"></a>
Public 类型</h2></td></tr>
<tr class="memitem:ae98628cfa3c621969338701bb20f3d96"><td class="memItemLeft" align="right" valign="top"><a id="ae98628cfa3c621969338701bb20f3d96"></a>
typedef <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; PointModelRfT &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>ModelRfCloud</b></td></tr>
<tr class="separator:ae98628cfa3c621969338701bb20f3d96"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6e490bc42a9403eaa399e63e29100e87"><td class="memItemLeft" align="right" valign="top"><a id="a6e490bc42a9403eaa399e63e29100e87"></a>
typedef ModelRfCloud::Ptr&#160;</td><td class="memItemRight" valign="bottom"><b>ModelRfCloudPtr</b></td></tr>
<tr class="separator:a6e490bc42a9403eaa399e63e29100e87"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af18b7f2abeae56e36523c105bf85e4dd"><td class="memItemLeft" align="right" valign="top"><a id="af18b7f2abeae56e36523c105bf85e4dd"></a>
typedef ModelRfCloud::ConstPtr&#160;</td><td class="memItemRight" valign="bottom"><b>ModelRfCloudConstPtr</b></td></tr>
<tr class="separator:af18b7f2abeae56e36523c105bf85e4dd"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1d783906724b14dd89f44f21f6f218cb"><td class="memItemLeft" align="right" valign="top"><a id="a1d783906724b14dd89f44f21f6f218cb"></a>
typedef <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; PointSceneRfT &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>SceneRfCloud</b></td></tr>
<tr class="separator:a1d783906724b14dd89f44f21f6f218cb"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4657a81175113cb1e307bc3458198b16"><td class="memItemLeft" align="right" valign="top"><a id="a4657a81175113cb1e307bc3458198b16"></a>
typedef SceneRfCloud::Ptr&#160;</td><td class="memItemRight" valign="bottom"><b>SceneRfCloudPtr</b></td></tr>
<tr class="separator:a4657a81175113cb1e307bc3458198b16"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a97210004db062e6fd929b5e4e6781bac"><td class="memItemLeft" align="right" valign="top"><a id="a97210004db062e6fd929b5e4e6781bac"></a>
typedef SceneRfCloud::ConstPtr&#160;</td><td class="memItemRight" valign="bottom"><b>SceneRfCloudConstPtr</b></td></tr>
<tr class="separator:a97210004db062e6fd929b5e4e6781bac"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a240a40f147e359893d1b6c473e37145c"><td class="memItemLeft" align="right" valign="top"><a id="a240a40f147e359893d1b6c473e37145c"></a>
typedef <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; PointModelT &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>PointCloud</b></td></tr>
<tr class="separator:a240a40f147e359893d1b6c473e37145c"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a43cf882a9e0e68ad9a536ef7d2cec93d"><td class="memItemLeft" align="right" valign="top"><a id="a43cf882a9e0e68ad9a536ef7d2cec93d"></a>
typedef PointCloud::Ptr&#160;</td><td class="memItemRight" valign="bottom"><b>PointCloudPtr</b></td></tr>
<tr class="separator:a43cf882a9e0e68ad9a536ef7d2cec93d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afa5132f374a3078c670c6f9afbcd7b59"><td class="memItemLeft" align="right" valign="top"><a id="afa5132f374a3078c670c6f9afbcd7b59"></a>
typedef PointCloud::ConstPtr&#160;</td><td class="memItemRight" valign="bottom"><b>PointCloudConstPtr</b></td></tr>
<tr class="separator:afa5132f374a3078c670c6f9afbcd7b59"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adc46486efea1fcbb9ae16d75e0be603e"><td class="memItemLeft" align="right" valign="top"><a id="adc46486efea1fcbb9ae16d75e0be603e"></a>
typedef <a class="el" href="classpcl_1_1_correspondence_grouping.html">pcl::CorrespondenceGrouping</a>&lt; PointModelT, PointSceneT &gt;::SceneCloudConstPtr&#160;</td><td class="memItemRight" valign="bottom"><b>SceneCloudConstPtr</b></td></tr>
<tr class="separator:adc46486efea1fcbb9ae16d75e0be603e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_types_classpcl_1_1_correspondence_grouping"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classpcl_1_1_correspondence_grouping')"><img src="closed.png" alt="-"/>&#160;Public 类型 继承自 <a class="el" href="classpcl_1_1_correspondence_grouping.html">pcl::CorrespondenceGrouping&lt; PointModelT, PointSceneT &gt;</a></td></tr>
<tr class="memitem:a88e388306e758b4c9f3e814916ee964f inherit pub_types_classpcl_1_1_correspondence_grouping"><td class="memItemLeft" align="right" valign="top"><a id="a88e388306e758b4c9f3e814916ee964f"></a>
typedef <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; PointSceneT &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>SceneCloud</b></td></tr>
<tr class="separator:a88e388306e758b4c9f3e814916ee964f inherit pub_types_classpcl_1_1_correspondence_grouping"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1a80cd8624824f35c56a93c39e8ef8c5 inherit pub_types_classpcl_1_1_correspondence_grouping"><td class="memItemLeft" align="right" valign="top"><a id="a1a80cd8624824f35c56a93c39e8ef8c5"></a>
typedef SceneCloud::Ptr&#160;</td><td class="memItemRight" valign="bottom"><b>SceneCloudPtr</b></td></tr>
<tr class="separator:a1a80cd8624824f35c56a93c39e8ef8c5 inherit pub_types_classpcl_1_1_correspondence_grouping"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a67c32a41d7da5743c3fcd4f5574920e5 inherit pub_types_classpcl_1_1_correspondence_grouping"><td class="memItemLeft" align="right" valign="top"><a id="a67c32a41d7da5743c3fcd4f5574920e5"></a>
typedef SceneCloud::ConstPtr&#160;</td><td class="memItemRight" valign="bottom"><b>SceneCloudConstPtr</b></td></tr>
<tr class="separator:a67c32a41d7da5743c3fcd4f5574920e5 inherit pub_types_classpcl_1_1_correspondence_grouping"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_types_classpcl_1_1_p_c_l_base"><td colspan="2" onclick="javascript:toggleInherit('pub_types_classpcl_1_1_p_c_l_base')"><img src="closed.png" alt="-"/>&#160;Public 类型 继承自 <a class="el" href="classpcl_1_1_p_c_l_base.html">pcl::PCLBase&lt; PointModelT &gt;</a></td></tr>
<tr class="memitem:ae2f6f6863a73337858b7a7a054eaae4f inherit pub_types_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="ae2f6f6863a73337858b7a7a054eaae4f"></a>
typedef <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; PointModelT &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>PointCloud</b></td></tr>
<tr class="separator:ae2f6f6863a73337858b7a7a054eaae4f inherit pub_types_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab84dd662cda89edb882fe5307b2136ea inherit pub_types_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="ab84dd662cda89edb882fe5307b2136ea"></a>
typedef PointCloud::Ptr&#160;</td><td class="memItemRight" valign="bottom"><b>PointCloudPtr</b></td></tr>
<tr class="separator:ab84dd662cda89edb882fe5307b2136ea inherit pub_types_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac8326513fad0680b6993e2f1a79a6af4 inherit pub_types_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="ac8326513fad0680b6993e2f1a79a6af4"></a>
typedef PointCloud::ConstPtr&#160;</td><td class="memItemRight" valign="bottom"><b>PointCloudConstPtr</b></td></tr>
<tr class="separator:ac8326513fad0680b6993e2f1a79a6af4 inherit pub_types_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ae51eae0c7b3e0b7178f4894dff90660a inherit pub_types_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="ae51eae0c7b3e0b7178f4894dff90660a"></a>
typedef boost::shared_ptr&lt; <a class="el" href="structpcl_1_1_point_indices.html">PointIndices</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>PointIndicesPtr</b></td></tr>
<tr class="separator:ae51eae0c7b3e0b7178f4894dff90660a inherit pub_types_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a51771056fb4ab8c448a11157acbe2ee0 inherit pub_types_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="a51771056fb4ab8c448a11157acbe2ee0"></a>
typedef boost::shared_ptr&lt; <a class="el" href="structpcl_1_1_point_indices.html">PointIndices</a> const &gt;&#160;</td><td class="memItemRight" valign="bottom"><b>PointIndicesConstPtr</b></td></tr>
<tr class="separator:a51771056fb4ab8c448a11157acbe2ee0 inherit pub_types_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pub-methods"></a>
Public 成员函数</h2></td></tr>
<tr class="memitem:ad4aa8ea44d4c35082b7beac6cc3cc730"><td class="memItemLeft" align="right" valign="top"><a id="ad4aa8ea44d4c35082b7beac6cc3cc730"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_hough3_d_grouping.html#ad4aa8ea44d4c35082b7beac6cc3cc730">Hough3DGrouping</a> ()</td></tr>
<tr class="memdesc:ad4aa8ea44d4c35082b7beac6cc3cc730"><td class="mdescLeft">&#160;</td><td class="mdescRight">Constructor <br /></td></tr>
<tr class="separator:ad4aa8ea44d4c35082b7beac6cc3cc730"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a128db6281c9d8e0b38c6d430ef058116"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_hough3_d_grouping.html#a128db6281c9d8e0b38c6d430ef058116">setInputCloud</a> (const PointCloudConstPtr &amp;cloud)</td></tr>
<tr class="memdesc:a128db6281c9d8e0b38c6d430ef058116"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provide a pointer to the input dataset.  <a href="classpcl_1_1_hough3_d_grouping.html#a128db6281c9d8e0b38c6d430ef058116">更多...</a><br /></td></tr>
<tr class="separator:a128db6281c9d8e0b38c6d430ef058116"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8f7af4b86f2f7effa2eabd844f4ffe28"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_hough3_d_grouping.html#a8f7af4b86f2f7effa2eabd844f4ffe28">setInputRf</a> (const ModelRfCloudConstPtr &amp;input_rf)</td></tr>
<tr class="memdesc:a8f7af4b86f2f7effa2eabd844f4ffe28"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provide a pointer to the input dataset's reference frames. Each point in the reference frame cloud should be the reference frame of the correspondent point in the input dataset.  <a href="classpcl_1_1_hough3_d_grouping.html#a8f7af4b86f2f7effa2eabd844f4ffe28">更多...</a><br /></td></tr>
<tr class="separator:a8f7af4b86f2f7effa2eabd844f4ffe28"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a052ec949ec7c04d06e79c9a8068a433b"><td class="memItemLeft" align="right" valign="top">ModelRfCloudConstPtr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_hough3_d_grouping.html#a052ec949ec7c04d06e79c9a8068a433b">getInputRf</a> () const</td></tr>
<tr class="memdesc:a052ec949ec7c04d06e79c9a8068a433b"><td class="mdescLeft">&#160;</td><td class="mdescRight">Getter for the input dataset's reference frames. Each point in the reference frame cloud should be the reference frame of the correspondent point in the input dataset.  <a href="classpcl_1_1_hough3_d_grouping.html#a052ec949ec7c04d06e79c9a8068a433b">更多...</a><br /></td></tr>
<tr class="separator:a052ec949ec7c04d06e79c9a8068a433b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a877d543207cc31cb21536ec566f5b3e9"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_hough3_d_grouping.html#a877d543207cc31cb21536ec566f5b3e9">setSceneCloud</a> (const SceneCloudConstPtr &amp;scene)</td></tr>
<tr class="memdesc:a877d543207cc31cb21536ec566f5b3e9"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provide a pointer to the scene dataset (i.e. the cloud in which the algorithm has to search for instances of the input model)  <a href="classpcl_1_1_hough3_d_grouping.html#a877d543207cc31cb21536ec566f5b3e9">更多...</a><br /></td></tr>
<tr class="separator:a877d543207cc31cb21536ec566f5b3e9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2ad258fd1cd391d8e3ee09adc4cc94e3"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_hough3_d_grouping.html#a2ad258fd1cd391d8e3ee09adc4cc94e3">setSceneRf</a> (const SceneRfCloudConstPtr &amp;scene_rf)</td></tr>
<tr class="memdesc:a2ad258fd1cd391d8e3ee09adc4cc94e3"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provide a pointer to the scene dataset's reference frames. Each point in the reference frame cloud should be the reference frame of the correspondent point in the scene dataset.  <a href="classpcl_1_1_hough3_d_grouping.html#a2ad258fd1cd391d8e3ee09adc4cc94e3">更多...</a><br /></td></tr>
<tr class="separator:a2ad258fd1cd391d8e3ee09adc4cc94e3"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adc098cef4277d39060683e4cbffd020e"><td class="memItemLeft" align="right" valign="top">SceneRfCloudConstPtr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_hough3_d_grouping.html#adc098cef4277d39060683e4cbffd020e">getSceneRf</a> () const</td></tr>
<tr class="memdesc:adc098cef4277d39060683e4cbffd020e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Getter for the scene dataset's reference frames. Each point in the reference frame cloud should be the reference frame of the correspondent point in the scene dataset.  <a href="classpcl_1_1_hough3_d_grouping.html#adc098cef4277d39060683e4cbffd020e">更多...</a><br /></td></tr>
<tr class="separator:adc098cef4277d39060683e4cbffd020e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a597bc71af146923a2717359e8ed45e50"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_hough3_d_grouping.html#a597bc71af146923a2717359e8ed45e50">setModelSceneCorrespondences</a> (const CorrespondencesConstPtr &amp;corrs)</td></tr>
<tr class="memdesc:a597bc71af146923a2717359e8ed45e50"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provide a pointer to the precomputed correspondences between points in the input dataset and points in the scene dataset. The correspondences are going to be clustered into different model instances by the algorithm.  <a href="classpcl_1_1_hough3_d_grouping.html#a597bc71af146923a2717359e8ed45e50">更多...</a><br /></td></tr>
<tr class="separator:a597bc71af146923a2717359e8ed45e50"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ac832e662f91a1442357102e1fcc86ead"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_hough3_d_grouping.html#ac832e662f91a1442357102e1fcc86ead">setHoughThreshold</a> (double threshold)</td></tr>
<tr class="memdesc:ac832e662f91a1442357102e1fcc86ead"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the minimum number of votes in the Hough space needed to infer the presence of a model instance into the scene cloud.  <a href="classpcl_1_1_hough3_d_grouping.html#ac832e662f91a1442357102e1fcc86ead">更多...</a><br /></td></tr>
<tr class="separator:ac832e662f91a1442357102e1fcc86ead"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a55521f52145fad420cfae41ce4740150"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_hough3_d_grouping.html#a55521f52145fad420cfae41ce4740150">getHoughThreshold</a> () const</td></tr>
<tr class="memdesc:a55521f52145fad420cfae41ce4740150"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the minimum number of votes in the Hough space needed to infer the presence of a model instance into the scene cloud.  <a href="classpcl_1_1_hough3_d_grouping.html#a55521f52145fad420cfae41ce4740150">更多...</a><br /></td></tr>
<tr class="separator:a55521f52145fad420cfae41ce4740150"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a866d42f0b08775aae337d2ed61c1c834"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_hough3_d_grouping.html#a866d42f0b08775aae337d2ed61c1c834">setHoughBinSize</a> (double bin_size)</td></tr>
<tr class="memdesc:a866d42f0b08775aae337d2ed61c1c834"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets the size of each bin into the Hough space.  <a href="classpcl_1_1_hough3_d_grouping.html#a866d42f0b08775aae337d2ed61c1c834">更多...</a><br /></td></tr>
<tr class="separator:a866d42f0b08775aae337d2ed61c1c834"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8d4be09609f69be04a2a992a08f9ab78"><td class="memItemLeft" align="right" valign="top">double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_hough3_d_grouping.html#a8d4be09609f69be04a2a992a08f9ab78">getHoughBinSize</a> () const</td></tr>
<tr class="memdesc:a8d4be09609f69be04a2a992a08f9ab78"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets the size of each bin into the Hough space.  <a href="classpcl_1_1_hough3_d_grouping.html#a8d4be09609f69be04a2a992a08f9ab78">更多...</a><br /></td></tr>
<tr class="separator:a8d4be09609f69be04a2a992a08f9ab78"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0102fa52853e876fe4d778303f5141a5"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_hough3_d_grouping.html#a0102fa52853e876fe4d778303f5141a5">setUseInterpolation</a> (bool use_interpolation)</td></tr>
<tr class="memdesc:a0102fa52853e876fe4d778303f5141a5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets whether the vote casting procedure interpolates the score between neighboring bins of the Hough space or not.  <a href="classpcl_1_1_hough3_d_grouping.html#a0102fa52853e876fe4d778303f5141a5">更多...</a><br /></td></tr>
<tr class="separator:a0102fa52853e876fe4d778303f5141a5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a20edaa2c36dc80fca9b9d1f4d11624d5"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_hough3_d_grouping.html#a20edaa2c36dc80fca9b9d1f4d11624d5">getUseInterpolation</a> () const</td></tr>
<tr class="memdesc:a20edaa2c36dc80fca9b9d1f4d11624d5"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets whether the vote casting procedure interpolates the score between neighboring bins of the Hough space or not.  <a href="classpcl_1_1_hough3_d_grouping.html#a20edaa2c36dc80fca9b9d1f4d11624d5">更多...</a><br /></td></tr>
<tr class="separator:a20edaa2c36dc80fca9b9d1f4d11624d5"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acc900a577b052056bff781bef095884e"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_hough3_d_grouping.html#acc900a577b052056bff781bef095884e">setUseDistanceWeight</a> (bool use_distance_weight)</td></tr>
<tr class="memdesc:acc900a577b052056bff781bef095884e"><td class="mdescLeft">&#160;</td><td class="mdescRight">Sets whether the vote casting procedure uses the correspondence's distance as a score.  <a href="classpcl_1_1_hough3_d_grouping.html#acc900a577b052056bff781bef095884e">更多...</a><br /></td></tr>
<tr class="separator:acc900a577b052056bff781bef095884e"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a14d39812313f7f882c3a3299ec80344d"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_hough3_d_grouping.html#a14d39812313f7f882c3a3299ec80344d">getUseDistanceWeight</a> () const</td></tr>
<tr class="memdesc:a14d39812313f7f882c3a3299ec80344d"><td class="mdescLeft">&#160;</td><td class="mdescRight">Gets whether the vote casting procedure uses the correspondence's distance as a score.  <a href="classpcl_1_1_hough3_d_grouping.html#a14d39812313f7f882c3a3299ec80344d">更多...</a><br /></td></tr>
<tr class="separator:a14d39812313f7f882c3a3299ec80344d"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a215586d8e29fb530c8aa6ab461699492"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_hough3_d_grouping.html#a215586d8e29fb530c8aa6ab461699492">setLocalRfNormalsSearchRadius</a> (float local_rf_normals_search_radius)</td></tr>
<tr class="memdesc:a215586d8e29fb530c8aa6ab461699492"><td class="mdescLeft">&#160;</td><td class="mdescRight">If the Local reference frame has not been set for either the model cloud or the scene cloud, this algorithm makes the computation itself but needs a suitable search radius to compute the normals in order to subsequently compute the RF (if not set a default 15 nearest neighbors search is performed).  <a href="classpcl_1_1_hough3_d_grouping.html#a215586d8e29fb530c8aa6ab461699492">更多...</a><br /></td></tr>
<tr class="separator:a215586d8e29fb530c8aa6ab461699492"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a387031f74f038380cb956db04e34f4d1"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_hough3_d_grouping.html#a387031f74f038380cb956db04e34f4d1">getLocalRfNormalsSearchRadius</a> () const</td></tr>
<tr class="memdesc:a387031f74f038380cb956db04e34f4d1"><td class="mdescLeft">&#160;</td><td class="mdescRight">If the Local reference frame has not been set for either the model cloud or the scene cloud, this algorithm makes the computation itself but needs a suitable search radius to compute the normals in order to subsequently compute the RF (if not set a default 15 nearest neighbors search is performed).  <a href="classpcl_1_1_hough3_d_grouping.html#a387031f74f038380cb956db04e34f4d1">更多...</a><br /></td></tr>
<tr class="separator:a387031f74f038380cb956db04e34f4d1"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a2291ba9d84199dce9b29195edf771b30"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_hough3_d_grouping.html#a2291ba9d84199dce9b29195edf771b30">setLocalRfSearchRadius</a> (float local_rf_search_radius)</td></tr>
<tr class="memdesc:a2291ba9d84199dce9b29195edf771b30"><td class="mdescLeft">&#160;</td><td class="mdescRight">If the Local reference frame has not been set for either the model cloud or the scene cloud, this algorithm makes the computation itself but needs a suitable search radius to do so.  <a href="classpcl_1_1_hough3_d_grouping.html#a2291ba9d84199dce9b29195edf771b30">更多...</a><br /></td></tr>
<tr class="separator:a2291ba9d84199dce9b29195edf771b30"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5e7826f875f742293f0ed25808899552"><td class="memItemLeft" align="right" valign="top">float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_hough3_d_grouping.html#a5e7826f875f742293f0ed25808899552">getLocalRfSearchRadius</a> () const</td></tr>
<tr class="memdesc:a5e7826f875f742293f0ed25808899552"><td class="mdescLeft">&#160;</td><td class="mdescRight">If the Local reference frame has not been set for either the model cloud or the scene cloud, this algorithm makes the computation itself but needs a suitable search radius to do so.  <a href="classpcl_1_1_hough3_d_grouping.html#a5e7826f875f742293f0ed25808899552">更多...</a><br /></td></tr>
<tr class="separator:a5e7826f875f742293f0ed25808899552"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5e20d3e6f7946b303bf7ed0426ed940a"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_hough3_d_grouping.html#a5e20d3e6f7946b303bf7ed0426ed940a">train</a> ()</td></tr>
<tr class="memdesc:a5e20d3e6f7946b303bf7ed0426ed940a"><td class="mdescLeft">&#160;</td><td class="mdescRight">Call this function after setting the input, the input_rf and the hough_bin_size parameters to perform an off line training of the algorithm. This might be useful if one wants to perform once and for all a pre-computation of votes that only concern the models, increasing the on-line efficiency of the grouping algorithm. The algorithm is automatically trained on the first invocation of the recognize method or the cluster method if this training function has not been manually invoked.  <a href="classpcl_1_1_hough3_d_grouping.html#a5e20d3e6f7946b303bf7ed0426ed940a">更多...</a><br /></td></tr>
<tr class="separator:a5e20d3e6f7946b303bf7ed0426ed940a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a39a0170877c51fbaf51e1119ecc34c05"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_hough3_d_grouping.html#a39a0170877c51fbaf51e1119ecc34c05">recognize</a> (std::vector&lt; Eigen::Matrix4f, Eigen::aligned_allocator&lt; Eigen::Matrix4f &gt; &gt; &amp;transformations)</td></tr>
<tr class="memdesc:a39a0170877c51fbaf51e1119ecc34c05"><td class="mdescLeft">&#160;</td><td class="mdescRight">The main function, recognizes instances of the model into the scene set by the user.  <a href="classpcl_1_1_hough3_d_grouping.html#a39a0170877c51fbaf51e1119ecc34c05">更多...</a><br /></td></tr>
<tr class="separator:a39a0170877c51fbaf51e1119ecc34c05"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:addef52d8b2bfbfa9416a42aa3dce28d9"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_hough3_d_grouping.html#addef52d8b2bfbfa9416a42aa3dce28d9">recognize</a> (std::vector&lt; Eigen::Matrix4f, Eigen::aligned_allocator&lt; Eigen::Matrix4f &gt; &gt; &amp;transformations, std::vector&lt; pcl::Correspondences &gt; &amp;clustered_corrs)</td></tr>
<tr class="memdesc:addef52d8b2bfbfa9416a42aa3dce28d9"><td class="mdescLeft">&#160;</td><td class="mdescRight">The main function, recognizes instances of the model into the scene set by the user.  <a href="classpcl_1_1_hough3_d_grouping.html#addef52d8b2bfbfa9416a42aa3dce28d9">更多...</a><br /></td></tr>
<tr class="separator:addef52d8b2bfbfa9416a42aa3dce28d9"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classpcl_1_1_correspondence_grouping"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classpcl_1_1_correspondence_grouping')"><img src="closed.png" alt="-"/>&#160;Public 成员函数 继承自 <a class="el" href="classpcl_1_1_correspondence_grouping.html">pcl::CorrespondenceGrouping&lt; PointModelT, PointSceneT &gt;</a></td></tr>
<tr class="memitem:a8010eaa4b5b61f8e8e6419e9cf949cd6 inherit pub_methods_classpcl_1_1_correspondence_grouping"><td class="memItemLeft" align="right" valign="top"><a id="a8010eaa4b5b61f8e8e6419e9cf949cd6"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_correspondence_grouping.html#a8010eaa4b5b61f8e8e6419e9cf949cd6">CorrespondenceGrouping</a> ()</td></tr>
<tr class="memdesc:a8010eaa4b5b61f8e8e6419e9cf949cd6 inherit pub_methods_classpcl_1_1_correspondence_grouping"><td class="mdescLeft">&#160;</td><td class="mdescRight">Empty constructor. <br /></td></tr>
<tr class="separator:a8010eaa4b5b61f8e8e6419e9cf949cd6 inherit pub_methods_classpcl_1_1_correspondence_grouping"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1a3fd1d4456672c5d204c27fdfec5ed2 inherit pub_methods_classpcl_1_1_correspondence_grouping"><td class="memItemLeft" align="right" valign="top"><a id="a1a3fd1d4456672c5d204c27fdfec5ed2"></a>
virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_correspondence_grouping.html#a1a3fd1d4456672c5d204c27fdfec5ed2">~CorrespondenceGrouping</a> ()</td></tr>
<tr class="memdesc:a1a3fd1d4456672c5d204c27fdfec5ed2 inherit pub_methods_classpcl_1_1_correspondence_grouping"><td class="mdescLeft">&#160;</td><td class="mdescRight">destructor. <br /></td></tr>
<tr class="separator:a1a3fd1d4456672c5d204c27fdfec5ed2 inherit pub_methods_classpcl_1_1_correspondence_grouping"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a595917f04e7e941c2f74bca7e866318f inherit pub_methods_classpcl_1_1_correspondence_grouping"><td class="memItemLeft" align="right" valign="top">SceneCloudConstPtr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_correspondence_grouping.html#a595917f04e7e941c2f74bca7e866318f">getSceneCloud</a> () const</td></tr>
<tr class="memdesc:a595917f04e7e941c2f74bca7e866318f inherit pub_methods_classpcl_1_1_correspondence_grouping"><td class="mdescLeft">&#160;</td><td class="mdescRight">Getter for the scene dataset.  <a href="classpcl_1_1_correspondence_grouping.html#a595917f04e7e941c2f74bca7e866318f">更多...</a><br /></td></tr>
<tr class="separator:a595917f04e7e941c2f74bca7e866318f inherit pub_methods_classpcl_1_1_correspondence_grouping"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa468a5f107ce0f86457adc328e3e0db2 inherit pub_methods_classpcl_1_1_correspondence_grouping"><td class="memItemLeft" align="right" valign="top">CorrespondencesConstPtr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_correspondence_grouping.html#aa468a5f107ce0f86457adc328e3e0db2">getModelSceneCorrespondences</a> () const</td></tr>
<tr class="memdesc:aa468a5f107ce0f86457adc328e3e0db2 inherit pub_methods_classpcl_1_1_correspondence_grouping"><td class="mdescLeft">&#160;</td><td class="mdescRight">Getter for the precomputed correspondences between points in the input dataset and points in the scene dataset.  <a href="classpcl_1_1_correspondence_grouping.html#aa468a5f107ce0f86457adc328e3e0db2">更多...</a><br /></td></tr>
<tr class="separator:aa468a5f107ce0f86457adc328e3e0db2 inherit pub_methods_classpcl_1_1_correspondence_grouping"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a169d94cb945cc4cc04dec60312cf34fa inherit pub_methods_classpcl_1_1_correspondence_grouping"><td class="memItemLeft" align="right" valign="top">std::vector&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_correspondence_grouping.html#a169d94cb945cc4cc04dec60312cf34fa">getCharacteristicScales</a> () const</td></tr>
<tr class="memdesc:a169d94cb945cc4cc04dec60312cf34fa inherit pub_methods_classpcl_1_1_correspondence_grouping"><td class="mdescLeft">&#160;</td><td class="mdescRight">Getter for the vector of characteristic scales associated to each cluster  <a href="classpcl_1_1_correspondence_grouping.html#a169d94cb945cc4cc04dec60312cf34fa">更多...</a><br /></td></tr>
<tr class="separator:a169d94cb945cc4cc04dec60312cf34fa inherit pub_methods_classpcl_1_1_correspondence_grouping"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a1b295805c65d4be0a7c20199316c41a4 inherit pub_methods_classpcl_1_1_correspondence_grouping"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_correspondence_grouping.html#a1b295805c65d4be0a7c20199316c41a4">cluster</a> (std::vector&lt; Correspondences &gt; &amp;clustered_corrs)</td></tr>
<tr class="memdesc:a1b295805c65d4be0a7c20199316c41a4 inherit pub_methods_classpcl_1_1_correspondence_grouping"><td class="mdescLeft">&#160;</td><td class="mdescRight">Clusters the input correspondences belonging to different model instances.  <a href="classpcl_1_1_correspondence_grouping.html#a1b295805c65d4be0a7c20199316c41a4">更多...</a><br /></td></tr>
<tr class="separator:a1b295805c65d4be0a7c20199316c41a4 inherit pub_methods_classpcl_1_1_correspondence_grouping"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pub_methods_classpcl_1_1_p_c_l_base"><td colspan="2" onclick="javascript:toggleInherit('pub_methods_classpcl_1_1_p_c_l_base')"><img src="closed.png" alt="-"/>&#160;Public 成员函数 继承自 <a class="el" href="classpcl_1_1_p_c_l_base.html">pcl::PCLBase&lt; PointModelT &gt;</a></td></tr>
<tr class="memitem:af4fbc5eb005057f8a0fc6d60bde595df inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="af4fbc5eb005057f8a0fc6d60bde595df"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#af4fbc5eb005057f8a0fc6d60bde595df">PCLBase</a> ()</td></tr>
<tr class="memdesc:af4fbc5eb005057f8a0fc6d60bde595df inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Empty constructor. <br /></td></tr>
<tr class="separator:af4fbc5eb005057f8a0fc6d60bde595df inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a7a6dd7a91275d7737cf1b18005b47244 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="a7a6dd7a91275d7737cf1b18005b47244"></a>
&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#a7a6dd7a91275d7737cf1b18005b47244">PCLBase</a> (const <a class="el" href="classpcl_1_1_p_c_l_base.html">PCLBase</a> &amp;base)</td></tr>
<tr class="memdesc:a7a6dd7a91275d7737cf1b18005b47244 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Copy constructor. <br /></td></tr>
<tr class="separator:a7a6dd7a91275d7737cf1b18005b47244 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ad5d6846e98e59c37dcc3dc9958d53966 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="ad5d6846e98e59c37dcc3dc9958d53966"></a>
virtual&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#ad5d6846e98e59c37dcc3dc9958d53966">~PCLBase</a> ()</td></tr>
<tr class="memdesc:ad5d6846e98e59c37dcc3dc9958d53966 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Destructor. <br /></td></tr>
<tr class="separator:ad5d6846e98e59c37dcc3dc9958d53966 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8cd745c4f7a792212f4fc3720b9d46ea inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="a8cd745c4f7a792212f4fc3720b9d46ea"></a>
PointCloudConstPtr const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#a8cd745c4f7a792212f4fc3720b9d46ea">getInputCloud</a> () const</td></tr>
<tr class="memdesc:a8cd745c4f7a792212f4fc3720b9d46ea inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a pointer to the input point cloud dataset. <br /></td></tr>
<tr class="separator:a8cd745c4f7a792212f4fc3720b9d46ea inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ab219359de6eb34c9d51e2e976dd1a0d1 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#ab219359de6eb34c9d51e2e976dd1a0d1">setIndices</a> (const IndicesPtr &amp;indices)</td></tr>
<tr class="memdesc:ab219359de6eb34c9d51e2e976dd1a0d1 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provide a pointer to the vector of indices that represents the input data.  <a href="classpcl_1_1_p_c_l_base.html#ab219359de6eb34c9d51e2e976dd1a0d1">更多...</a><br /></td></tr>
<tr class="separator:ab219359de6eb34c9d51e2e976dd1a0d1 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a436c68c74b31e4dd00000adfbb11ca7c inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#a436c68c74b31e4dd00000adfbb11ca7c">setIndices</a> (const IndicesConstPtr &amp;indices)</td></tr>
<tr class="memdesc:a436c68c74b31e4dd00000adfbb11ca7c inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provide a pointer to the vector of indices that represents the input data.  <a href="classpcl_1_1_p_c_l_base.html#a436c68c74b31e4dd00000adfbb11ca7c">更多...</a><br /></td></tr>
<tr class="separator:a436c68c74b31e4dd00000adfbb11ca7c inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af9cc90d8364ce968566f75800d3773ca inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#af9cc90d8364ce968566f75800d3773ca">setIndices</a> (const PointIndicesConstPtr &amp;indices)</td></tr>
<tr class="memdesc:af9cc90d8364ce968566f75800d3773ca inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Provide a pointer to the vector of indices that represents the input data.  <a href="classpcl_1_1_p_c_l_base.html#af9cc90d8364ce968566f75800d3773ca">更多...</a><br /></td></tr>
<tr class="separator:af9cc90d8364ce968566f75800d3773ca inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a930c7a6375fdf65ff8cfdb4eb4a6d996 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top">virtual void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#a930c7a6375fdf65ff8cfdb4eb4a6d996">setIndices</a> (size_t row_start, size_t col_start, size_t nb_rows, size_t nb_cols)</td></tr>
<tr class="memdesc:a930c7a6375fdf65ff8cfdb4eb4a6d996 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set the indices for the points laying within an interest region of the point cloud.  <a href="classpcl_1_1_p_c_l_base.html#a930c7a6375fdf65ff8cfdb4eb4a6d996">更多...</a><br /></td></tr>
<tr class="separator:a930c7a6375fdf65ff8cfdb4eb4a6d996 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a058753dd4de73d3d0062fe2e452fba3c inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="a058753dd4de73d3d0062fe2e452fba3c"></a>
IndicesPtr const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#a058753dd4de73d3d0062fe2e452fba3c">getIndices</a> ()</td></tr>
<tr class="memdesc:a058753dd4de73d3d0062fe2e452fba3c inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a pointer to the vector of indices used. <br /></td></tr>
<tr class="separator:a058753dd4de73d3d0062fe2e452fba3c inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:acae187b37230758959572ceb1e6e2045 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="acae187b37230758959572ceb1e6e2045"></a>
IndicesConstPtr const&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#acae187b37230758959572ceb1e6e2045">getIndices</a> () const</td></tr>
<tr class="memdesc:acae187b37230758959572ceb1e6e2045 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Get a pointer to the vector of indices used. <br /></td></tr>
<tr class="separator:acae187b37230758959572ceb1e6e2045 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af7335fedb0af0930b9d1dedcb54ba201 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top">const PointModelT &amp;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#af7335fedb0af0930b9d1dedcb54ba201">operator[]</a> (size_t pos) const</td></tr>
<tr class="memdesc:af7335fedb0af0930b9d1dedcb54ba201 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Override PointCloud operator[] to shorten code  <a href="classpcl_1_1_p_c_l_base.html#af7335fedb0af0930b9d1dedcb54ba201">更多...</a><br /></td></tr>
<tr class="separator:af7335fedb0af0930b9d1dedcb54ba201 inherit pub_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-methods"></a>
Protected 成员函数</h2></td></tr>
<tr class="memitem:a2ce0b05ab0847a9719dfa7e6f05bb64f"><td class="memItemLeft" align="right" valign="top">void&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_hough3_d_grouping.html#a2ce0b05ab0847a9719dfa7e6f05bb64f">clusterCorrespondences</a> (std::vector&lt; Correspondences &gt; &amp;model_instances)</td></tr>
<tr class="memdesc:a2ce0b05ab0847a9719dfa7e6f05bb64f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Cluster the input correspondences in order to distinguish between different instances of the model into the scene.  <a href="classpcl_1_1_hough3_d_grouping.html#a2ce0b05ab0847a9719dfa7e6f05bb64f">更多...</a><br /></td></tr>
<tr class="separator:a2ce0b05ab0847a9719dfa7e6f05bb64f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a5653b21af3d636a5660ad6c2af95240b"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_hough3_d_grouping.html#a5653b21af3d636a5660ad6c2af95240b">houghVoting</a> ()</td></tr>
<tr class="memdesc:a5653b21af3d636a5660ad6c2af95240b"><td class="mdescLeft">&#160;</td><td class="mdescRight">The Hough space voting procedure.  <a href="classpcl_1_1_hough3_d_grouping.html#a5653b21af3d636a5660ad6c2af95240b">更多...</a><br /></td></tr>
<tr class="separator:a5653b21af3d636a5660ad6c2af95240b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a778fa8404b2562b23f3dcaf71a5afe58"><td class="memTemplParams" colspan="2">template&lt;typename PointType , typename PointRfType &gt; </td></tr>
<tr class="memitem:a778fa8404b2562b23f3dcaf71a5afe58"><td class="memTemplItemLeft" align="right" valign="top">void&#160;</td><td class="memTemplItemRight" valign="bottom"><a class="el" href="classpcl_1_1_hough3_d_grouping.html#a778fa8404b2562b23f3dcaf71a5afe58">computeRf</a> (const boost::shared_ptr&lt; const <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; PointType &gt; &gt; &amp;input, <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; PointRfType &gt; &amp;rf)</td></tr>
<tr class="memdesc:a778fa8404b2562b23f3dcaf71a5afe58"><td class="mdescLeft">&#160;</td><td class="mdescRight">Computes the reference frame for an input cloud.  <a href="classpcl_1_1_hough3_d_grouping.html#a778fa8404b2562b23f3dcaf71a5afe58">更多...</a><br /></td></tr>
<tr class="separator:a778fa8404b2562b23f3dcaf71a5afe58"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_methods_classpcl_1_1_correspondence_grouping"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classpcl_1_1_correspondence_grouping')"><img src="closed.png" alt="-"/>&#160;Protected 成员函数 继承自 <a class="el" href="classpcl_1_1_correspondence_grouping.html">pcl::CorrespondenceGrouping&lt; PointModelT, PointSceneT &gt;</a></td></tr>
<tr class="memitem:a937a0f4ffc3abc7990db895252bbfeba inherit pro_methods_classpcl_1_1_correspondence_grouping"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_correspondence_grouping.html#a937a0f4ffc3abc7990db895252bbfeba">initCompute</a> ()</td></tr>
<tr class="memdesc:a937a0f4ffc3abc7990db895252bbfeba inherit pro_methods_classpcl_1_1_correspondence_grouping"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method should get called before starting the actual computation.  <a href="classpcl_1_1_correspondence_grouping.html#a937a0f4ffc3abc7990db895252bbfeba">更多...</a><br /></td></tr>
<tr class="separator:a937a0f4ffc3abc7990db895252bbfeba inherit pro_methods_classpcl_1_1_correspondence_grouping"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aa387a7273a34fe84db945ba8c5bc2754 inherit pro_methods_classpcl_1_1_correspondence_grouping"><td class="memItemLeft" align="right" valign="top"><a id="aa387a7273a34fe84db945ba8c5bc2754"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_correspondence_grouping.html#aa387a7273a34fe84db945ba8c5bc2754">deinitCompute</a> ()</td></tr>
<tr class="memdesc:aa387a7273a34fe84db945ba8c5bc2754 inherit pro_methods_classpcl_1_1_correspondence_grouping"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method should get called after finishing the actual computation. <br /></td></tr>
<tr class="separator:aa387a7273a34fe84db945ba8c5bc2754 inherit pro_methods_classpcl_1_1_correspondence_grouping"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_methods_classpcl_1_1_p_c_l_base"><td colspan="2" onclick="javascript:toggleInherit('pro_methods_classpcl_1_1_p_c_l_base')"><img src="closed.png" alt="-"/>&#160;Protected 成员函数 继承自 <a class="el" href="classpcl_1_1_p_c_l_base.html">pcl::PCLBase&lt; PointModelT &gt;</a></td></tr>
<tr class="memitem:acceb20854934f4cf77e266eb5a44d4f0 inherit pro_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top">bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#acceb20854934f4cf77e266eb5a44d4f0">initCompute</a> ()</td></tr>
<tr class="memdesc:acceb20854934f4cf77e266eb5a44d4f0 inherit pro_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method should get called before starting the actual computation.  <a href="classpcl_1_1_p_c_l_base.html#acceb20854934f4cf77e266eb5a44d4f0">更多...</a><br /></td></tr>
<tr class="separator:acceb20854934f4cf77e266eb5a44d4f0 inherit pro_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afc426c4eebb94b7734d4fa556bff1420 inherit pro_methods_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="afc426c4eebb94b7734d4fa556bff1420"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#afc426c4eebb94b7734d4fa556bff1420">deinitCompute</a> ()</td></tr>
<tr class="memdesc:afc426c4eebb94b7734d4fa556bff1420 inherit pro_methods_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">This method should get called after finishing the actual computation. <br /></td></tr>
<tr class="separator:afc426c4eebb94b7734d4fa556bff1420 inherit pro_methods_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table><table class="memberdecls">
<tr class="heading"><td colspan="2"><h2 class="groupheader"><a name="pro-attribs"></a>
Protected 属性</h2></td></tr>
<tr class="memitem:ac15a3f73f40e24c79fcd74bf35ffe045"><td class="memItemLeft" align="right" valign="top"><a id="ac15a3f73f40e24c79fcd74bf35ffe045"></a>
ModelRfCloudConstPtr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_hough3_d_grouping.html#ac15a3f73f40e24c79fcd74bf35ffe045">input_rf_</a></td></tr>
<tr class="memdesc:ac15a3f73f40e24c79fcd74bf35ffe045"><td class="mdescLeft">&#160;</td><td class="mdescRight">The input Rf cloud. <br /></td></tr>
<tr class="separator:ac15a3f73f40e24c79fcd74bf35ffe045"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:af5117555131a60e60ba2928005981f7a"><td class="memItemLeft" align="right" valign="top"><a id="af5117555131a60e60ba2928005981f7a"></a>
SceneRfCloudConstPtr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_hough3_d_grouping.html#af5117555131a60e60ba2928005981f7a">scene_rf_</a></td></tr>
<tr class="memdesc:af5117555131a60e60ba2928005981f7a"><td class="mdescLeft">&#160;</td><td class="mdescRight">The scene Rf cloud. <br /></td></tr>
<tr class="separator:af5117555131a60e60ba2928005981f7a"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a565b7cd857b83ecfb6b89c64c2fc4067"><td class="memItemLeft" align="right" valign="top"><a id="a565b7cd857b83ecfb6b89c64c2fc4067"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_hough3_d_grouping.html#a565b7cd857b83ecfb6b89c64c2fc4067">needs_training_</a></td></tr>
<tr class="memdesc:a565b7cd857b83ecfb6b89c64c2fc4067"><td class="mdescLeft">&#160;</td><td class="mdescRight">If the training of the Hough space is needed; set on change of either the input cloud or the input_rf. <br /></td></tr>
<tr class="separator:a565b7cd857b83ecfb6b89c64c2fc4067"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a857b94d7c2951510b6e4990e5561b049"><td class="memItemLeft" align="right" valign="top"><a id="a857b94d7c2951510b6e4990e5561b049"></a>
std::vector&lt; Eigen::Vector3f, Eigen::aligned_allocator&lt; Eigen::Vector3f &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_hough3_d_grouping.html#a857b94d7c2951510b6e4990e5561b049">model_votes_</a></td></tr>
<tr class="memdesc:a857b94d7c2951510b6e4990e5561b049"><td class="mdescLeft">&#160;</td><td class="mdescRight">The result of the training. The vector between each model point and the centroid of the model adjusted by its local reference frame. <br /></td></tr>
<tr class="separator:a857b94d7c2951510b6e4990e5561b049"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a4143dedbc983daf41a4a1247ae93fb61"><td class="memItemLeft" align="right" valign="top"><a id="a4143dedbc983daf41a4a1247ae93fb61"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_hough3_d_grouping.html#a4143dedbc983daf41a4a1247ae93fb61">hough_threshold_</a></td></tr>
<tr class="memdesc:a4143dedbc983daf41a4a1247ae93fb61"><td class="mdescLeft">&#160;</td><td class="mdescRight">The minimum number of votes in the Hough space needed to infer the presence of a model instance into the scene cloud. <br /></td></tr>
<tr class="separator:a4143dedbc983daf41a4a1247ae93fb61"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a6f8845c48f998be01898b5e98dde61df"><td class="memItemLeft" align="right" valign="top"><a id="a6f8845c48f998be01898b5e98dde61df"></a>
double&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_hough3_d_grouping.html#a6f8845c48f998be01898b5e98dde61df">hough_bin_size_</a></td></tr>
<tr class="memdesc:a6f8845c48f998be01898b5e98dde61df"><td class="mdescLeft">&#160;</td><td class="mdescRight">The size of each bin of the hough space. <br /></td></tr>
<tr class="separator:a6f8845c48f998be01898b5e98dde61df"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aee23f5064417bd6cbee419ab57d65d67"><td class="memItemLeft" align="right" valign="top"><a id="aee23f5064417bd6cbee419ab57d65d67"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_hough3_d_grouping.html#aee23f5064417bd6cbee419ab57d65d67">use_interpolation_</a></td></tr>
<tr class="memdesc:aee23f5064417bd6cbee419ab57d65d67"><td class="mdescLeft">&#160;</td><td class="mdescRight">Use the interpolation between neighboring Hough bins when casting votes. <br /></td></tr>
<tr class="separator:aee23f5064417bd6cbee419ab57d65d67"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a54c782e31602fd647fd4973871c70002"><td class="memItemLeft" align="right" valign="top"><a id="a54c782e31602fd647fd4973871c70002"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_hough3_d_grouping.html#a54c782e31602fd647fd4973871c70002">use_distance_weight_</a></td></tr>
<tr class="memdesc:a54c782e31602fd647fd4973871c70002"><td class="mdescLeft">&#160;</td><td class="mdescRight">Use the weighted correspondence distance when casting votes. <br /></td></tr>
<tr class="separator:a54c782e31602fd647fd4973871c70002"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a167c6e65e18cf2b7524630ce7c4f8b53"><td class="memItemLeft" align="right" valign="top"><a id="a167c6e65e18cf2b7524630ce7c4f8b53"></a>
float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_hough3_d_grouping.html#a167c6e65e18cf2b7524630ce7c4f8b53">local_rf_normals_search_radius_</a></td></tr>
<tr class="memdesc:a167c6e65e18cf2b7524630ce7c4f8b53"><td class="mdescLeft">&#160;</td><td class="mdescRight">Normals search radius for the potential Rf calculation. <br /></td></tr>
<tr class="separator:a167c6e65e18cf2b7524630ce7c4f8b53"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aea394d09fe22404ae9487c762c034c08"><td class="memItemLeft" align="right" valign="top"><a id="aea394d09fe22404ae9487c762c034c08"></a>
float&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_hough3_d_grouping.html#aea394d09fe22404ae9487c762c034c08">local_rf_search_radius_</a></td></tr>
<tr class="memdesc:aea394d09fe22404ae9487c762c034c08"><td class="mdescLeft">&#160;</td><td class="mdescRight">Search radius for the potential Rf calculation. <br /></td></tr>
<tr class="separator:aea394d09fe22404ae9487c762c034c08"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a8273da7056cb2fedbfb86e29ea3b188b"><td class="memItemLeft" align="right" valign="top"><a id="a8273da7056cb2fedbfb86e29ea3b188b"></a>
boost::shared_ptr&lt; <a class="el" href="classpcl_1_1recognition_1_1_hough_space3_d.html">pcl::recognition::HoughSpace3D</a> &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_hough3_d_grouping.html#a8273da7056cb2fedbfb86e29ea3b188b">hough_space_</a></td></tr>
<tr class="memdesc:a8273da7056cb2fedbfb86e29ea3b188b"><td class="mdescLeft">&#160;</td><td class="mdescRight">The Hough space. <br /></td></tr>
<tr class="separator:a8273da7056cb2fedbfb86e29ea3b188b"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a93db7b188c28ab188c34070408bc0940"><td class="memItemLeft" align="right" valign="top"><a id="a93db7b188c28ab188c34070408bc0940"></a>
std::vector&lt; Eigen::Matrix4f, Eigen::aligned_allocator&lt; Eigen::Matrix4f &gt; &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_hough3_d_grouping.html#a93db7b188c28ab188c34070408bc0940">found_transformations_</a></td></tr>
<tr class="memdesc:a93db7b188c28ab188c34070408bc0940"><td class="mdescLeft">&#160;</td><td class="mdescRight">Transformations found by clusterCorrespondences method. <br /></td></tr>
<tr class="separator:a93db7b188c28ab188c34070408bc0940"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a693bad31eef837767c419eafef1c369f"><td class="memItemLeft" align="right" valign="top"><a id="a693bad31eef837767c419eafef1c369f"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_hough3_d_grouping.html#a693bad31eef837767c419eafef1c369f">hough_space_initialized_</a></td></tr>
<tr class="memdesc:a693bad31eef837767c419eafef1c369f"><td class="mdescLeft">&#160;</td><td class="mdescRight">Whether the Hough space already contains the correct votes for the current input parameters and so the cluster and recognize calls don't need to recompute each value. Reset on the change of any parameter except the hough_threshold. <br /></td></tr>
<tr class="separator:a693bad31eef837767c419eafef1c369f"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_attribs_classpcl_1_1_correspondence_grouping"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classpcl_1_1_correspondence_grouping')"><img src="closed.png" alt="-"/>&#160;Protected 属性 继承自 <a class="el" href="classpcl_1_1_correspondence_grouping.html">pcl::CorrespondenceGrouping&lt; PointModelT, PointSceneT &gt;</a></td></tr>
<tr class="memitem:ab2b931fafa436428801a5674298c8e44 inherit pro_attribs_classpcl_1_1_correspondence_grouping"><td class="memItemLeft" align="right" valign="top"><a id="ab2b931fafa436428801a5674298c8e44"></a>
SceneCloudConstPtr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_correspondence_grouping.html#ab2b931fafa436428801a5674298c8e44">scene_</a></td></tr>
<tr class="memdesc:ab2b931fafa436428801a5674298c8e44 inherit pro_attribs_classpcl_1_1_correspondence_grouping"><td class="mdescLeft">&#160;</td><td class="mdescRight">The scene cloud. <br /></td></tr>
<tr class="separator:ab2b931fafa436428801a5674298c8e44 inherit pro_attribs_classpcl_1_1_correspondence_grouping"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:a0a7d1212a23f16717d0ea30f83a79578 inherit pro_attribs_classpcl_1_1_correspondence_grouping"><td class="memItemLeft" align="right" valign="top"><a id="a0a7d1212a23f16717d0ea30f83a79578"></a>
CorrespondencesConstPtr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_correspondence_grouping.html#a0a7d1212a23f16717d0ea30f83a79578">model_scene_corrs_</a></td></tr>
<tr class="memdesc:a0a7d1212a23f16717d0ea30f83a79578 inherit pro_attribs_classpcl_1_1_correspondence_grouping"><td class="mdescLeft">&#160;</td><td class="mdescRight">The correspondences between points in the input and the scene datasets. <br /></td></tr>
<tr class="separator:a0a7d1212a23f16717d0ea30f83a79578 inherit pro_attribs_classpcl_1_1_correspondence_grouping"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:afccfe8fd48ec2a5e9245b271b7287c66 inherit pro_attribs_classpcl_1_1_correspondence_grouping"><td class="memItemLeft" align="right" valign="top"><a id="afccfe8fd48ec2a5e9245b271b7287c66"></a>
std::vector&lt; double &gt;&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_correspondence_grouping.html#afccfe8fd48ec2a5e9245b271b7287c66">corr_group_scale_</a></td></tr>
<tr class="memdesc:afccfe8fd48ec2a5e9245b271b7287c66 inherit pro_attribs_classpcl_1_1_correspondence_grouping"><td class="mdescLeft">&#160;</td><td class="mdescRight">characteristic scale associated to each correspondence subset; if the cg algorithm can not handle scale invariance, the size of the vector will be 0. <br /></td></tr>
<tr class="separator:afccfe8fd48ec2a5e9245b271b7287c66 inherit pro_attribs_classpcl_1_1_correspondence_grouping"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="inherit_header pro_attribs_classpcl_1_1_p_c_l_base"><td colspan="2" onclick="javascript:toggleInherit('pro_attribs_classpcl_1_1_p_c_l_base')"><img src="closed.png" alt="-"/>&#160;Protected 属性 继承自 <a class="el" href="classpcl_1_1_p_c_l_base.html">pcl::PCLBase&lt; PointModelT &gt;</a></td></tr>
<tr class="memitem:a09c70d8e06e3fb4f07903fe6f8d67869 inherit pro_attribs_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="a09c70d8e06e3fb4f07903fe6f8d67869"></a>
PointCloudConstPtr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#a09c70d8e06e3fb4f07903fe6f8d67869">input_</a></td></tr>
<tr class="memdesc:a09c70d8e06e3fb4f07903fe6f8d67869 inherit pro_attribs_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">The input point cloud dataset. <br /></td></tr>
<tr class="separator:a09c70d8e06e3fb4f07903fe6f8d67869 inherit pro_attribs_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:aaee847c8a517ebf365bad2cb182a6626 inherit pro_attribs_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="aaee847c8a517ebf365bad2cb182a6626"></a>
IndicesPtr&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#aaee847c8a517ebf365bad2cb182a6626">indices_</a></td></tr>
<tr class="memdesc:aaee847c8a517ebf365bad2cb182a6626 inherit pro_attribs_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">A pointer to the vector of point indices to use. <br /></td></tr>
<tr class="separator:aaee847c8a517ebf365bad2cb182a6626 inherit pro_attribs_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:ada1eadb824d34ca9206a86343d9760bb inherit pro_attribs_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="ada1eadb824d34ca9206a86343d9760bb"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#ada1eadb824d34ca9206a86343d9760bb">use_indices_</a></td></tr>
<tr class="memdesc:ada1eadb824d34ca9206a86343d9760bb inherit pro_attribs_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">Set to true if point indices are used. <br /></td></tr>
<tr class="separator:ada1eadb824d34ca9206a86343d9760bb inherit pro_attribs_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
<tr class="memitem:adadb0299f144528020ed558af6879662 inherit pro_attribs_classpcl_1_1_p_c_l_base"><td class="memItemLeft" align="right" valign="top"><a id="adadb0299f144528020ed558af6879662"></a>
bool&#160;</td><td class="memItemRight" valign="bottom"><a class="el" href="classpcl_1_1_p_c_l_base.html#adadb0299f144528020ed558af6879662">fake_indices_</a></td></tr>
<tr class="memdesc:adadb0299f144528020ed558af6879662 inherit pro_attribs_classpcl_1_1_p_c_l_base"><td class="mdescLeft">&#160;</td><td class="mdescRight">If no set of indices are given, we construct a set of fake indices that mimic the input PointCloud. <br /></td></tr>
<tr class="separator:adadb0299f144528020ed558af6879662 inherit pro_attribs_classpcl_1_1_p_c_l_base"><td class="memSeparator" colspan="2">&#160;</td></tr>
</table>
<a name="details" id="details"></a><h2 class="groupheader">详细描述</h2>
<div class="textblock"><h3>template&lt;typename PointModelT, typename PointSceneT, typename PointModelRfT = pcl::ReferenceFrame, typename PointSceneRfT = pcl::ReferenceFrame&gt;<br />
class pcl::Hough3DGrouping&lt; PointModelT, PointSceneT, PointModelRfT, PointSceneRfT &gt;</h3>

<p>Class implementing a 3D correspondence grouping algorithm that can deal with multiple instances of a model template found into a given scene. Each correspondence casts a vote for a reference point in a 3D Hough Space. The remaining 3 DOF are taken into account by associating each correspondence with a local Reference Frame. The suggested PointModelRfT is <a class="el" href="structpcl_1_1_reference_frame.html">pcl::ReferenceFrame</a> </p>
<dl class="section note"><dt>注解</dt><dd>If you use this code in any academic work, please cite the original paper:<ul>
<li>F. Tombari, L. Di Stefano: <a class="el" href="class_object.html">Object</a> recognition in 3D scenes with occlusions and clutter by Hough voting. 2010, Fourth Pacific-Rim Symposium on Image and Video Technology</li>
</ul>
</dd></dl>
<dl class="section author"><dt>作者</dt><dd>Federico Tombari (original), Tommaso Cavallari (PCL port) </dd></dl>
</div><h2 class="groupheader">成员函数说明</h2>
<a id="a2ce0b05ab0847a9719dfa7e6f05bb64f"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2ce0b05ab0847a9719dfa7e6f05bb64f">&#9670;&nbsp;</a></span>clusterCorrespondences()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointModelT , typename PointSceneT , typename PointModelRfT , typename PointSceneRfT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1_hough3_d_grouping.html">pcl::Hough3DGrouping</a>&lt; PointModelT, PointSceneT, PointModelRfT, PointSceneRfT &gt;::clusterCorrespondences </td>
          <td>(</td>
          <td class="paramtype">std::vector&lt; Correspondences &gt; &amp;&#160;</td>
          <td class="paramname"><em>model_instances</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Cluster the input correspondences in order to distinguish between different instances of the model into the scene. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">model_instances</td><td>a vector containing the clustered correspondences for each model found on the scene. </td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>true if the clustering had been successful or false if errors have occurred. </dd></dl>

<p>实现了 <a class="el" href="classpcl_1_1_correspondence_grouping.html#ae32b30276b214e6733ee0bb9d4f90138">pcl::CorrespondenceGrouping&lt; PointModelT, PointSceneT &gt;</a>.</p>
<div class="fragment"><div class="line"><a name="l00259"></a><span class="lineno">  259</span>&#160;{</div>
<div class="line"><a name="l00260"></a><span class="lineno">  260</span>&#160;  model_instances.clear ();</div>
<div class="line"><a name="l00261"></a><span class="lineno">  261</span>&#160;  <a class="code" href="classpcl_1_1_hough3_d_grouping.html#a93db7b188c28ab188c34070408bc0940">found_transformations_</a>.clear ();</div>
<div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160; </div>
<div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;  <span class="keywordflow">if</span> (!<a class="code" href="classpcl_1_1_hough3_d_grouping.html#a693bad31eef837767c419eafef1c369f">hough_space_initialized_</a> &amp;&amp; !<a class="code" href="classpcl_1_1_hough3_d_grouping.html#a5653b21af3d636a5660ad6c2af95240b">houghVoting</a> ())</div>
<div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;  {</div>
<div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;    <span class="keywordflow">return</span>;</div>
<div class="line"><a name="l00266"></a><span class="lineno">  266</span>&#160;  }</div>
<div class="line"><a name="l00267"></a><span class="lineno">  267</span>&#160; </div>
<div class="line"><a name="l00268"></a><span class="lineno">  268</span>&#160;  <span class="comment">// Finding max bins and voters</span></div>
<div class="line"><a name="l00269"></a><span class="lineno">  269</span>&#160;  std::vector&lt;double&gt; max_values;</div>
<div class="line"><a name="l00270"></a><span class="lineno">  270</span>&#160;  std::vector&lt;std::vector&lt;int&gt; &gt; max_ids;</div>
<div class="line"><a name="l00271"></a><span class="lineno">  271</span>&#160; </div>
<div class="line"><a name="l00272"></a><span class="lineno">  272</span>&#160;  <a class="code" href="classpcl_1_1_hough3_d_grouping.html#a8273da7056cb2fedbfb86e29ea3b188b">hough_space_</a>-&gt;findMaxima (<a class="code" href="classpcl_1_1_hough3_d_grouping.html#a4143dedbc983daf41a4a1247ae93fb61">hough_threshold_</a>, max_values, max_ids);</div>
<div class="line"><a name="l00273"></a><span class="lineno">  273</span>&#160; </div>
<div class="line"><a name="l00274"></a><span class="lineno">  274</span>&#160;  <span class="comment">// Insert maximas into result vector, after Ransac correspondence rejection</span></div>
<div class="line"><a name="l00275"></a><span class="lineno">  275</span>&#160;  <span class="comment">// Temp copy of scene cloud with the type cast to ModelT in order to use Ransac</span></div>
<div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;  PointCloudPtr temp_scene_cloud_ptr (<span class="keyword">new</span> <a class="code" href="classpcl_1_1_point_cloud.html">PointCloud</a>);</div>
<div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;  pcl::copyPointCloud&lt;PointSceneT, PointModelT&gt; (*<a class="code" href="classpcl_1_1_correspondence_grouping.html#ab2b931fafa436428801a5674298c8e44">scene_</a>, *temp_scene_cloud_ptr);</div>
<div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160; </div>
<div class="line"><a name="l00279"></a><span class="lineno">  279</span>&#160;  <a class="code" href="classpcl_1_1registration_1_1_correspondence_rejector_sample_consensus.html">pcl::registration::CorrespondenceRejectorSampleConsensus&lt;PointModelT&gt;</a> corr_rejector;</div>
<div class="line"><a name="l00280"></a><span class="lineno">  280</span>&#160;  corr_rejector.<a class="code" href="classpcl_1_1registration_1_1_correspondence_rejector_sample_consensus.html#a49fa9e17ad1e371c4b5db9766d598349">setMaximumIterations</a> (10000);</div>
<div class="line"><a name="l00281"></a><span class="lineno">  281</span>&#160;  corr_rejector.<a class="code" href="classpcl_1_1registration_1_1_correspondence_rejector_sample_consensus.html#a48a908a4f76abe9b09d245e295bc00e2">setInlierThreshold</a> (<a class="code" href="classpcl_1_1_hough3_d_grouping.html#a6f8845c48f998be01898b5e98dde61df">hough_bin_size_</a>);</div>
<div class="line"><a name="l00282"></a><span class="lineno">  282</span>&#160;  corr_rejector.<a class="code" href="classpcl_1_1registration_1_1_correspondence_rejector_sample_consensus.html#a0ade3619194ea442ea9bd819762e63d0">setInputSource</a> (<a class="code" href="classpcl_1_1_p_c_l_base.html#a09c70d8e06e3fb4f07903fe6f8d67869">input_</a>);</div>
<div class="line"><a name="l00283"></a><span class="lineno">  283</span>&#160;  corr_rejector.<a class="code" href="classpcl_1_1registration_1_1_correspondence_rejector_sample_consensus.html#a42faaefd43eaf43b32efe0b1722a3d98">setInputTarget</a> (temp_scene_cloud_ptr);</div>
<div class="line"><a name="l00284"></a><span class="lineno">  284</span>&#160; </div>
<div class="line"><a name="l00285"></a><span class="lineno">  285</span>&#160;  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> j = 0; j &lt; max_values.size (); ++j)</div>
<div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;  {</div>
<div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;    Correspondences temp_corrs, filtered_corrs;</div>
<div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;    <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; max_ids[j].size (); ++i)</div>
<div class="line"><a name="l00289"></a><span class="lineno">  289</span>&#160;    {</div>
<div class="line"><a name="l00290"></a><span class="lineno">  290</span>&#160;      temp_corrs.push_back (<a class="code" href="classpcl_1_1_correspondence_grouping.html#a0a7d1212a23f16717d0ea30f83a79578">model_scene_corrs_</a>-&gt;at (max_ids[j][i]));</div>
<div class="line"><a name="l00291"></a><span class="lineno">  291</span>&#160;    }</div>
<div class="line"><a name="l00292"></a><span class="lineno">  292</span>&#160;    <span class="comment">// RANSAC filtering</span></div>
<div class="line"><a name="l00293"></a><span class="lineno">  293</span>&#160;    corr_rejector.<a class="code" href="classpcl_1_1registration_1_1_correspondence_rejector_sample_consensus.html#a2aaf796cecda8778814f114c54026570">getRemainingCorrespondences</a> (temp_corrs, filtered_corrs);</div>
<div class="line"><a name="l00294"></a><span class="lineno">  294</span>&#160;    <span class="comment">// Save transformations for recognize</span></div>
<div class="line"><a name="l00295"></a><span class="lineno">  295</span>&#160;    <a class="code" href="classpcl_1_1_hough3_d_grouping.html#a93db7b188c28ab188c34070408bc0940">found_transformations_</a>.push_back (corr_rejector.<a class="code" href="classpcl_1_1registration_1_1_correspondence_rejector_sample_consensus.html#a1542fc4a3d5d6c82485a321864a027af">getBestTransformation</a> ());</div>
<div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160; </div>
<div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;    model_instances.push_back (filtered_corrs);</div>
<div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;  }</div>
<div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;}</div>
<div class="ttc" id="aclasspcl_1_1_correspondence_grouping_html_a0a7d1212a23f16717d0ea30f83a79578"><div class="ttname"><a href="classpcl_1_1_correspondence_grouping.html#a0a7d1212a23f16717d0ea30f83a79578">pcl::CorrespondenceGrouping::model_scene_corrs_</a></div><div class="ttdeci">CorrespondencesConstPtr model_scene_corrs_</div><div class="ttdoc">The correspondences between points in the input and the scene datasets.</div><div class="ttdef"><b>Definition:</b> correspondence_grouping.h:139</div></div>
<div class="ttc" id="aclasspcl_1_1_correspondence_grouping_html_ab2b931fafa436428801a5674298c8e44"><div class="ttname"><a href="classpcl_1_1_correspondence_grouping.html#ab2b931fafa436428801a5674298c8e44">pcl::CorrespondenceGrouping::scene_</a></div><div class="ttdeci">SceneCloudConstPtr scene_</div><div class="ttdoc">The scene cloud.</div><div class="ttdef"><b>Definition:</b> correspondence_grouping.h:134</div></div>
<div class="ttc" id="aclasspcl_1_1_hough3_d_grouping_html_a4143dedbc983daf41a4a1247ae93fb61"><div class="ttname"><a href="classpcl_1_1_hough3_d_grouping.html#a4143dedbc983daf41a4a1247ae93fb61">pcl::Hough3DGrouping::hough_threshold_</a></div><div class="ttdeci">double hough_threshold_</div><div class="ttdoc">The minimum number of votes in the Hough space needed to infer the presence of a model instance into ...</div><div class="ttdef"><b>Definition:</b> hough_3d.h:454</div></div>
<div class="ttc" id="aclasspcl_1_1_hough3_d_grouping_html_a5653b21af3d636a5660ad6c2af95240b"><div class="ttname"><a href="classpcl_1_1_hough3_d_grouping.html#a5653b21af3d636a5660ad6c2af95240b">pcl::Hough3DGrouping::houghVoting</a></div><div class="ttdeci">bool houghVoting()</div><div class="ttdoc">The Hough space voting procedure.</div><div class="ttdef"><b>Definition:</b> hough_3d.hpp:137</div></div>
<div class="ttc" id="aclasspcl_1_1_hough3_d_grouping_html_a693bad31eef837767c419eafef1c369f"><div class="ttname"><a href="classpcl_1_1_hough3_d_grouping.html#a693bad31eef837767c419eafef1c369f">pcl::Hough3DGrouping::hough_space_initialized_</a></div><div class="ttdeci">bool hough_space_initialized_</div><div class="ttdoc">Whether the Hough space already contains the correct votes for the current input parameters and so th...</div><div class="ttdef"><b>Definition:</b> hough_3d.h:480</div></div>
<div class="ttc" id="aclasspcl_1_1_hough3_d_grouping_html_a6f8845c48f998be01898b5e98dde61df"><div class="ttname"><a href="classpcl_1_1_hough3_d_grouping.html#a6f8845c48f998be01898b5e98dde61df">pcl::Hough3DGrouping::hough_bin_size_</a></div><div class="ttdeci">double hough_bin_size_</div><div class="ttdoc">The size of each bin of the hough space.</div><div class="ttdef"><b>Definition:</b> hough_3d.h:457</div></div>
<div class="ttc" id="aclasspcl_1_1_hough3_d_grouping_html_a8273da7056cb2fedbfb86e29ea3b188b"><div class="ttname"><a href="classpcl_1_1_hough3_d_grouping.html#a8273da7056cb2fedbfb86e29ea3b188b">pcl::Hough3DGrouping::hough_space_</a></div><div class="ttdeci">boost::shared_ptr&lt; pcl::recognition::HoughSpace3D &gt; hough_space_</div><div class="ttdoc">The Hough space.</div><div class="ttdef"><b>Definition:</b> hough_3d.h:472</div></div>
<div class="ttc" id="aclasspcl_1_1_hough3_d_grouping_html_a93db7b188c28ab188c34070408bc0940"><div class="ttname"><a href="classpcl_1_1_hough3_d_grouping.html#a93db7b188c28ab188c34070408bc0940">pcl::Hough3DGrouping::found_transformations_</a></div><div class="ttdeci">std::vector&lt; Eigen::Matrix4f, Eigen::aligned_allocator&lt; Eigen::Matrix4f &gt; &gt; found_transformations_</div><div class="ttdoc">Transformations found by clusterCorrespondences method.</div><div class="ttdef"><b>Definition:</b> hough_3d.h:475</div></div>
<div class="ttc" id="aclasspcl_1_1_p_c_l_base_html_a09c70d8e06e3fb4f07903fe6f8d67869"><div class="ttname"><a href="classpcl_1_1_p_c_l_base.html#a09c70d8e06e3fb4f07903fe6f8d67869">pcl::PCLBase&lt; PointModelT &gt;::input_</a></div><div class="ttdeci">PointCloudConstPtr input_</div><div class="ttdoc">The input point cloud dataset.</div><div class="ttdef"><b>Definition:</b> pcl_base.h:150</div></div>
<div class="ttc" id="aclasspcl_1_1_point_cloud_html"><div class="ttname"><a href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a></div><div class="ttdoc">PointCloud represents the base class in PCL for storing collections of 3D points.</div><div class="ttdef"><b>Definition:</b> point_cloud.h:173</div></div>
<div class="ttc" id="aclasspcl_1_1registration_1_1_correspondence_rejector_sample_consensus_html"><div class="ttname"><a href="classpcl_1_1registration_1_1_correspondence_rejector_sample_consensus.html">pcl::registration::CorrespondenceRejectorSampleConsensus</a></div><div class="ttdoc">CorrespondenceRejectorSampleConsensus implements a correspondence rejection using Random Sample Conse...</div><div class="ttdef"><b>Definition:</b> correspondence_rejection_sample_consensus.h:60</div></div>
<div class="ttc" id="aclasspcl_1_1registration_1_1_correspondence_rejector_sample_consensus_html_a0ade3619194ea442ea9bd819762e63d0"><div class="ttname"><a href="classpcl_1_1registration_1_1_correspondence_rejector_sample_consensus.html#a0ade3619194ea442ea9bd819762e63d0">pcl::registration::CorrespondenceRejectorSampleConsensus::setInputSource</a></div><div class="ttdeci">virtual void setInputSource(const PointCloudConstPtr &amp;cloud)</div><div class="ttdoc">Provide a source point cloud dataset (must contain XYZ data!)</div><div class="ttdef"><b>Definition:</b> correspondence_rejection_sample_consensus.h:116</div></div>
<div class="ttc" id="aclasspcl_1_1registration_1_1_correspondence_rejector_sample_consensus_html_a1542fc4a3d5d6c82485a321864a027af"><div class="ttname"><a href="classpcl_1_1registration_1_1_correspondence_rejector_sample_consensus.html#a1542fc4a3d5d6c82485a321864a027af">pcl::registration::CorrespondenceRejectorSampleConsensus::getBestTransformation</a></div><div class="ttdeci">Eigen::Matrix4f getBestTransformation()</div><div class="ttdoc">Get the best transformation after RANSAC rejection.</div><div class="ttdef"><b>Definition:</b> correspondence_rejection_sample_consensus.h:214</div></div>
<div class="ttc" id="aclasspcl_1_1registration_1_1_correspondence_rejector_sample_consensus_html_a2aaf796cecda8778814f114c54026570"><div class="ttname"><a href="classpcl_1_1registration_1_1_correspondence_rejector_sample_consensus.html#a2aaf796cecda8778814f114c54026570">pcl::registration::CorrespondenceRejectorSampleConsensus::getRemainingCorrespondences</a></div><div class="ttdeci">void getRemainingCorrespondences(const pcl::Correspondences &amp;original_correspondences, pcl::Correspondences &amp;remaining_correspondences)</div><div class="ttdoc">Get a list of valid correspondences after rejection from the original set of correspondences.</div><div class="ttdef"><b>Definition:</b> correspondence_rejection_sample_consensus.hpp:85</div></div>
<div class="ttc" id="aclasspcl_1_1registration_1_1_correspondence_rejector_sample_consensus_html_a42faaefd43eaf43b32efe0b1722a3d98"><div class="ttname"><a href="classpcl_1_1registration_1_1_correspondence_rejector_sample_consensus.html#a42faaefd43eaf43b32efe0b1722a3d98">pcl::registration::CorrespondenceRejectorSampleConsensus::setInputTarget</a></div><div class="ttdeci">virtual void setInputTarget(const PointCloudConstPtr &amp;cloud)</div><div class="ttdoc">Provide a target point cloud dataset (must contain XYZ data!)</div><div class="ttdef"><b>Definition:</b> correspondence_rejection_sample_consensus.h:136</div></div>
<div class="ttc" id="aclasspcl_1_1registration_1_1_correspondence_rejector_sample_consensus_html_a48a908a4f76abe9b09d245e295bc00e2"><div class="ttname"><a href="classpcl_1_1registration_1_1_correspondence_rejector_sample_consensus.html#a48a908a4f76abe9b09d245e295bc00e2">pcl::registration::CorrespondenceRejectorSampleConsensus::setInlierThreshold</a></div><div class="ttdeci">void setInlierThreshold(double threshold)</div><div class="ttdoc">Set the maximum distance between corresponding points. Correspondences with distances below the thres...</div><div class="ttdef"><b>Definition:</b> correspondence_rejection_sample_consensus.h:176</div></div>
<div class="ttc" id="aclasspcl_1_1registration_1_1_correspondence_rejector_sample_consensus_html_a49fa9e17ad1e371c4b5db9766d598349"><div class="ttname"><a href="classpcl_1_1registration_1_1_correspondence_rejector_sample_consensus.html#a49fa9e17ad1e371c4b5db9766d598349">pcl::registration::CorrespondenceRejectorSampleConsensus::setMaximumIterations</a></div><div class="ttdeci">void setMaximumIterations(int max_iterations)</div><div class="ttdoc">Set the maximum number of iterations.</div><div class="ttdef"><b>Definition:</b> correspondence_rejection_sample_consensus.h:195</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a778fa8404b2562b23f3dcaf71a5afe58"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a778fa8404b2562b23f3dcaf71a5afe58">&#9670;&nbsp;</a></span>computeRf()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointModelT , typename PointSceneT , typename PointModelRfT , typename PointSceneRfT &gt; </div>
<div class="memtemplate">
template&lt;typename PointType , typename PointRfType &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1_hough3_d_grouping.html">pcl::Hough3DGrouping</a>&lt; PointModelT, PointSceneT, PointModelRfT, PointSceneRfT &gt;::computeRf </td>
          <td>(</td>
          <td class="paramtype">const boost::shared_ptr&lt; const <a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; PointType &gt; &gt; &amp;&#160;</td>
          <td class="paramname"><em>input</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype"><a class="el" href="classpcl_1_1_point_cloud.html">pcl::PointCloud</a>&lt; PointRfType &gt; &amp;&#160;</td>
          <td class="paramname"><em>rf</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Computes the reference frame for an input cloud. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">input</td><td>the input cloud. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">rf</td><td>the resulting reference frame. </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00055"></a><span class="lineno">   55</span>&#160;{</div>
<div class="line"><a name="l00056"></a><span class="lineno">   56</span>&#160;  <span class="keywordflow">if</span> (<a class="code" href="classpcl_1_1_hough3_d_grouping.html#aea394d09fe22404ae9487c762c034c08">local_rf_search_radius_</a> == 0)</div>
<div class="line"><a name="l00057"></a><span class="lineno">   57</span>&#160;  {</div>
<div class="line"><a name="l00058"></a><span class="lineno">   58</span>&#160;    PCL_WARN (<span class="stringliteral">&quot;[pcl::Hough3DGrouping::computeRf()] Warning! Reference frame search radius not set. Computing with default value. Results might be incorrect, algorithm might be slow.\n&quot;</span>);</div>
<div class="line"><a name="l00059"></a><span class="lineno">   59</span>&#160;    <a class="code" href="classpcl_1_1_hough3_d_grouping.html#aea394d09fe22404ae9487c762c034c08">local_rf_search_radius_</a> = <span class="keyword">static_cast&lt;</span><span class="keywordtype">float</span><span class="keyword">&gt;</span> (<a class="code" href="classpcl_1_1_hough3_d_grouping.html#a6f8845c48f998be01898b5e98dde61df">hough_bin_size_</a>);</div>
<div class="line"><a name="l00060"></a><span class="lineno">   60</span>&#160;  }</div>
<div class="line"><a name="l00061"></a><span class="lineno">   61</span>&#160;  pcl::PointCloud&lt;Normal&gt;::Ptr normal_cloud (<span class="keyword">new</span> <a class="code" href="classpcl_1_1_point_cloud.html">pcl::PointCloud&lt;Normal&gt;</a> ());</div>
<div class="line"><a name="l00062"></a><span class="lineno">   62</span>&#160;  NormalEstimation&lt;PointType, Normal&gt; norm_est;</div>
<div class="line"><a name="l00063"></a><span class="lineno">   63</span>&#160;  norm_est.setInputCloud (input);</div>
<div class="line"><a name="l00064"></a><span class="lineno">   64</span>&#160;  <span class="keywordflow">if</span> (<a class="code" href="classpcl_1_1_hough3_d_grouping.html#a167c6e65e18cf2b7524630ce7c4f8b53">local_rf_normals_search_radius_</a> &lt;= 0.0f)</div>
<div class="line"><a name="l00065"></a><span class="lineno">   65</span>&#160;  {</div>
<div class="line"><a name="l00066"></a><span class="lineno">   66</span>&#160;    norm_est.setKSearch (15);</div>
<div class="line"><a name="l00067"></a><span class="lineno">   67</span>&#160;  }</div>
<div class="line"><a name="l00068"></a><span class="lineno">   68</span>&#160;  <span class="keywordflow">else</span></div>
<div class="line"><a name="l00069"></a><span class="lineno">   69</span>&#160;  {</div>
<div class="line"><a name="l00070"></a><span class="lineno">   70</span>&#160;    norm_est.setRadiusSearch (<a class="code" href="classpcl_1_1_hough3_d_grouping.html#a167c6e65e18cf2b7524630ce7c4f8b53">local_rf_normals_search_radius_</a>);</div>
<div class="line"><a name="l00071"></a><span class="lineno">   71</span>&#160;  }  </div>
<div class="line"><a name="l00072"></a><span class="lineno">   72</span>&#160;  norm_est.compute (*normal_cloud);</div>
<div class="line"><a name="l00073"></a><span class="lineno">   73</span>&#160; </div>
<div class="line"><a name="l00074"></a><span class="lineno">   74</span>&#160;  BOARDLocalReferenceFrameEstimation&lt;PointType, Normal, PointRfType&gt; rf_est;</div>
<div class="line"><a name="l00075"></a><span class="lineno">   75</span>&#160;  rf_est.setInputCloud (input);</div>
<div class="line"><a name="l00076"></a><span class="lineno">   76</span>&#160;  rf_est.setInputNormals (normal_cloud);</div>
<div class="line"><a name="l00077"></a><span class="lineno">   77</span>&#160;  rf_est.setFindHoles (<span class="keyword">true</span>);</div>
<div class="line"><a name="l00078"></a><span class="lineno">   78</span>&#160;  rf_est.setRadiusSearch (<a class="code" href="classpcl_1_1_hough3_d_grouping.html#aea394d09fe22404ae9487c762c034c08">local_rf_search_radius_</a>);</div>
<div class="line"><a name="l00079"></a><span class="lineno">   79</span>&#160;  rf_est.compute (rf);</div>
<div class="line"><a name="l00080"></a><span class="lineno">   80</span>&#160;}</div>
<div class="ttc" id="aclasspcl_1_1_hough3_d_grouping_html_a167c6e65e18cf2b7524630ce7c4f8b53"><div class="ttname"><a href="classpcl_1_1_hough3_d_grouping.html#a167c6e65e18cf2b7524630ce7c4f8b53">pcl::Hough3DGrouping::local_rf_normals_search_radius_</a></div><div class="ttdeci">float local_rf_normals_search_radius_</div><div class="ttdoc">Normals search radius for the potential Rf calculation.</div><div class="ttdef"><b>Definition:</b> hough_3d.h:466</div></div>
<div class="ttc" id="aclasspcl_1_1_hough3_d_grouping_html_aea394d09fe22404ae9487c762c034c08"><div class="ttname"><a href="classpcl_1_1_hough3_d_grouping.html#aea394d09fe22404ae9487c762c034c08">pcl::Hough3DGrouping::local_rf_search_radius_</a></div><div class="ttdeci">float local_rf_search_radius_</div><div class="ttdoc">Search radius for the potential Rf calculation.</div><div class="ttdef"><b>Definition:</b> hough_3d.h:469</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a8d4be09609f69be04a2a992a08f9ab78"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8d4be09609f69be04a2a992a08f9ab78">&#9670;&nbsp;</a></span>getHoughBinSize()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointModelT , typename PointSceneT , typename PointModelRfT  = pcl::ReferenceFrame, typename PointSceneRfT  = pcl::ReferenceFrame&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">double <a class="el" href="classpcl_1_1_hough3_d_grouping.html">pcl::Hough3DGrouping</a>&lt; PointModelT, PointSceneT, PointModelRfT, PointSceneRfT &gt;::getHoughBinSize </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Gets the size of each bin into the Hough space. </p>
<dl class="section return"><dt>返回</dt><dd>the size of each Hough space's bin. </dd></dl>
<div class="fragment"><div class="line"><a name="l00307"></a><span class="lineno">  307</span>&#160;      {</div>
<div class="line"><a name="l00308"></a><span class="lineno">  308</span>&#160;        <span class="keywordflow">return</span> (<a class="code" href="classpcl_1_1_hough3_d_grouping.html#a6f8845c48f998be01898b5e98dde61df">hough_bin_size_</a>);</div>
<div class="line"><a name="l00309"></a><span class="lineno">  309</span>&#160;      }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a55521f52145fad420cfae41ce4740150"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a55521f52145fad420cfae41ce4740150">&#9670;&nbsp;</a></span>getHoughThreshold()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointModelT , typename PointSceneT , typename PointModelRfT  = pcl::ReferenceFrame, typename PointSceneRfT  = pcl::ReferenceFrame&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">double <a class="el" href="classpcl_1_1_hough3_d_grouping.html">pcl::Hough3DGrouping</a>&lt; PointModelT, PointSceneT, PointModelRfT, PointSceneRfT &gt;::getHoughThreshold </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Gets the minimum number of votes in the Hough space needed to infer the presence of a model instance into the scene cloud. </p>
<dl class="section return"><dt>返回</dt><dd>the threshold for the Hough space voting. </dd></dl>
<div class="fragment"><div class="line"><a name="l00286"></a><span class="lineno">  286</span>&#160;      {</div>
<div class="line"><a name="l00287"></a><span class="lineno">  287</span>&#160;        <span class="keywordflow">return</span> (<a class="code" href="classpcl_1_1_hough3_d_grouping.html#a4143dedbc983daf41a4a1247ae93fb61">hough_threshold_</a>);</div>
<div class="line"><a name="l00288"></a><span class="lineno">  288</span>&#160;      }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a052ec949ec7c04d06e79c9a8068a433b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a052ec949ec7c04d06e79c9a8068a433b">&#9670;&nbsp;</a></span>getInputRf()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointModelT , typename PointSceneT , typename PointModelRfT  = pcl::ReferenceFrame, typename PointSceneRfT  = pcl::ReferenceFrame&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">ModelRfCloudConstPtr <a class="el" href="classpcl_1_1_hough3_d_grouping.html">pcl::Hough3DGrouping</a>&lt; PointModelT, PointSceneT, PointModelRfT, PointSceneRfT &gt;::getInputRf </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Getter for the input dataset's reference frames. Each point in the reference frame cloud should be the reference frame of the correspondent point in the input dataset. </p>
<dl class="section return"><dt>返回</dt><dd>the pointer to the input cloud's reference frames. </dd></dl>
<div class="fragment"><div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160;      {</div>
<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;        <span class="keywordflow">return</span> (<a class="code" href="classpcl_1_1_hough3_d_grouping.html#ac15a3f73f40e24c79fcd74bf35ffe045">input_rf_</a>);</div>
<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;      }</div>
<div class="ttc" id="aclasspcl_1_1_hough3_d_grouping_html_ac15a3f73f40e24c79fcd74bf35ffe045"><div class="ttname"><a href="classpcl_1_1_hough3_d_grouping.html#ac15a3f73f40e24c79fcd74bf35ffe045">pcl::Hough3DGrouping::input_rf_</a></div><div class="ttdeci">ModelRfCloudConstPtr input_rf_</div><div class="ttdoc">The input Rf cloud.</div><div class="ttdef"><b>Definition:</b> hough_3d.h:442</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a387031f74f038380cb956db04e34f4d1"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a387031f74f038380cb956db04e34f4d1">&#9670;&nbsp;</a></span>getLocalRfNormalsSearchRadius()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointModelT , typename PointSceneT , typename PointModelRfT  = pcl::ReferenceFrame, typename PointSceneRfT  = pcl::ReferenceFrame&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">float <a class="el" href="classpcl_1_1_hough3_d_grouping.html">pcl::Hough3DGrouping</a>&lt; PointModelT, PointSceneT, PointModelRfT, PointSceneRfT &gt;::getLocalRfNormalsSearchRadius </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>If the Local reference frame has not been set for either the model cloud or the scene cloud, this algorithm makes the computation itself but needs a suitable search radius to compute the normals in order to subsequently compute the RF (if not set a default 15 nearest neighbors search is performed). </p>
<dl class="section return"><dt>返回</dt><dd>the normals search radius for the local reference frame calculation. </dd></dl>
<div class="fragment"><div class="line"><a name="l00377"></a><span class="lineno">  377</span>&#160;      {</div>
<div class="line"><a name="l00378"></a><span class="lineno">  378</span>&#160;        <span class="keywordflow">return</span> (<a class="code" href="classpcl_1_1_hough3_d_grouping.html#a167c6e65e18cf2b7524630ce7c4f8b53">local_rf_normals_search_radius_</a>);</div>
<div class="line"><a name="l00379"></a><span class="lineno">  379</span>&#160;      }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a5e7826f875f742293f0ed25808899552"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5e7826f875f742293f0ed25808899552">&#9670;&nbsp;</a></span>getLocalRfSearchRadius()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointModelT , typename PointSceneT , typename PointModelRfT  = pcl::ReferenceFrame, typename PointSceneRfT  = pcl::ReferenceFrame&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">float <a class="el" href="classpcl_1_1_hough3_d_grouping.html">pcl::Hough3DGrouping</a>&lt; PointModelT, PointSceneT, PointModelRfT, PointSceneRfT &gt;::getLocalRfSearchRadius </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>If the Local reference frame has not been set for either the model cloud or the scene cloud, this algorithm makes the computation itself but needs a suitable search radius to do so. </p>
<dl class="section attention"><dt>注意</dt><dd>This parameter NEEDS to be set if the reference frames are not precomputed externally, otherwise the recognition results won't be correct.</dd></dl>
<dl class="section return"><dt>返回</dt><dd>the search radius for the local reference frame calculation. </dd></dl>
<div class="fragment"><div class="line"><a name="l00405"></a><span class="lineno">  405</span>&#160;      {</div>
<div class="line"><a name="l00406"></a><span class="lineno">  406</span>&#160;        <span class="keywordflow">return</span> (<a class="code" href="classpcl_1_1_hough3_d_grouping.html#aea394d09fe22404ae9487c762c034c08">local_rf_search_radius_</a>);</div>
<div class="line"><a name="l00407"></a><span class="lineno">  407</span>&#160;      }</div>
</div><!-- fragment -->
</div>
</div>
<a id="adc098cef4277d39060683e4cbffd020e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#adc098cef4277d39060683e4cbffd020e">&#9670;&nbsp;</a></span>getSceneRf()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointModelT , typename PointSceneT , typename PointModelRfT  = pcl::ReferenceFrame, typename PointSceneRfT  = pcl::ReferenceFrame&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">SceneRfCloudConstPtr <a class="el" href="classpcl_1_1_hough3_d_grouping.html">pcl::Hough3DGrouping</a>&lt; PointModelT, PointSceneT, PointModelRfT, PointSceneRfT &gt;::getSceneRf </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Getter for the scene dataset's reference frames. Each point in the reference frame cloud should be the reference frame of the correspondent point in the scene dataset. </p>
<dl class="section return"><dt>返回</dt><dd>the pointer to the scene cloud's reference frames. </dd></dl>
<div class="fragment"><div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160;      {</div>
<div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;        <span class="keywordflow">return</span> (<a class="code" href="classpcl_1_1_hough3_d_grouping.html#af5117555131a60e60ba2928005981f7a">scene_rf_</a>);</div>
<div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160;      }</div>
<div class="ttc" id="aclasspcl_1_1_hough3_d_grouping_html_af5117555131a60e60ba2928005981f7a"><div class="ttname"><a href="classpcl_1_1_hough3_d_grouping.html#af5117555131a60e60ba2928005981f7a">pcl::Hough3DGrouping::scene_rf_</a></div><div class="ttdeci">SceneRfCloudConstPtr scene_rf_</div><div class="ttdoc">The scene Rf cloud.</div><div class="ttdef"><b>Definition:</b> hough_3d.h:445</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a14d39812313f7f882c3a3299ec80344d"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a14d39812313f7f882c3a3299ec80344d">&#9670;&nbsp;</a></span>getUseDistanceWeight()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointModelT , typename PointSceneT , typename PointModelRfT  = pcl::ReferenceFrame, typename PointSceneRfT  = pcl::ReferenceFrame&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classpcl_1_1_hough3_d_grouping.html">pcl::Hough3DGrouping</a>&lt; PointModelT, PointSceneT, PointModelRfT, PointSceneRfT &gt;::getUseDistanceWeight </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Gets whether the vote casting procedure uses the correspondence's distance as a score. </p>
<dl class="section return"><dt>返回</dt><dd>if the algorithm should use the weighted distance when calculating the Hough voting score. </dd></dl>
<div class="fragment"><div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160;      {</div>
<div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160;        <span class="keywordflow">return</span> (<a class="code" href="classpcl_1_1_hough3_d_grouping.html#a54c782e31602fd647fd4973871c70002">use_distance_weight_</a>);</div>
<div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160;      } </div>
<div class="ttc" id="aclasspcl_1_1_hough3_d_grouping_html_a54c782e31602fd647fd4973871c70002"><div class="ttname"><a href="classpcl_1_1_hough3_d_grouping.html#a54c782e31602fd647fd4973871c70002">pcl::Hough3DGrouping::use_distance_weight_</a></div><div class="ttdeci">bool use_distance_weight_</div><div class="ttdoc">Use the weighted correspondence distance when casting votes.</div><div class="ttdef"><b>Definition:</b> hough_3d.h:463</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a20edaa2c36dc80fca9b9d1f4d11624d5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a20edaa2c36dc80fca9b9d1f4d11624d5">&#9670;&nbsp;</a></span>getUseInterpolation()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointModelT , typename PointSceneT , typename PointModelRfT  = pcl::ReferenceFrame, typename PointSceneRfT  = pcl::ReferenceFrame&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classpcl_1_1_hough3_d_grouping.html">pcl::Hough3DGrouping</a>&lt; PointModelT, PointSceneT, PointModelRfT, PointSceneRfT &gt;::getUseInterpolation </td>
          <td>(</td>
          <td class="paramname"></td><td>)</td>
          <td> const</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Gets whether the vote casting procedure interpolates the score between neighboring bins of the Hough space or not. </p>
<dl class="section return"><dt>返回</dt><dd>if the algorithm should interpolate the vote score between neighboring bins. </dd></dl>
<div class="fragment"><div class="line"><a name="l00330"></a><span class="lineno">  330</span>&#160;      {</div>
<div class="line"><a name="l00331"></a><span class="lineno">  331</span>&#160;        <span class="keywordflow">return</span> (<a class="code" href="classpcl_1_1_hough3_d_grouping.html#aee23f5064417bd6cbee419ab57d65d67">use_interpolation_</a>);</div>
<div class="line"><a name="l00332"></a><span class="lineno">  332</span>&#160;      }</div>
<div class="ttc" id="aclasspcl_1_1_hough3_d_grouping_html_aee23f5064417bd6cbee419ab57d65d67"><div class="ttname"><a href="classpcl_1_1_hough3_d_grouping.html#aee23f5064417bd6cbee419ab57d65d67">pcl::Hough3DGrouping::use_interpolation_</a></div><div class="ttdeci">bool use_interpolation_</div><div class="ttdoc">Use the interpolation between neighboring Hough bins when casting votes.</div><div class="ttdef"><b>Definition:</b> hough_3d.h:460</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a5653b21af3d636a5660ad6c2af95240b"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5653b21af3d636a5660ad6c2af95240b">&#9670;&nbsp;</a></span>houghVoting()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointModelT , typename PointSceneT , typename PointModelRfT , typename PointSceneRfT &gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classpcl_1_1_hough3_d_grouping.html">pcl::Hough3DGrouping</a>&lt; PointModelT, PointSceneT, PointModelRfT, PointSceneRfT &gt;::houghVoting</td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">protected</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>The Hough space voting procedure. </p>
<dl class="section return"><dt>返回</dt><dd>true if the voting had been successful or false if errors have occurred. </dd></dl>
<div class="fragment"><div class="line"><a name="l00138"></a><span class="lineno">  138</span>&#160;{</div>
<div class="line"><a name="l00139"></a><span class="lineno">  139</span>&#160;  <span class="keywordflow">if</span> (<a class="code" href="classpcl_1_1_hough3_d_grouping.html#a565b7cd857b83ecfb6b89c64c2fc4067">needs_training_</a>)</div>
<div class="line"><a name="l00140"></a><span class="lineno">  140</span>&#160;  {</div>
<div class="line"><a name="l00141"></a><span class="lineno">  141</span>&#160;    <span class="keywordflow">if</span> (!<a class="code" href="classpcl_1_1_hough3_d_grouping.html#a5e20d3e6f7946b303bf7ed0426ed940a">train</a> ())<span class="comment">//checks input and input_rf</span></div>
<div class="line"><a name="l00142"></a><span class="lineno">  142</span>&#160;      <span class="keywordflow">return</span> (<span class="keyword">false</span>);</div>
<div class="line"><a name="l00143"></a><span class="lineno">  143</span>&#160;  }</div>
<div class="line"><a name="l00144"></a><span class="lineno">  144</span>&#160; </div>
<div class="line"><a name="l00145"></a><span class="lineno">  145</span>&#160;  <span class="comment">//if (!scene_)</span></div>
<div class="line"><a name="l00146"></a><span class="lineno">  146</span>&#160;  <span class="comment">//{</span></div>
<div class="line"><a name="l00147"></a><span class="lineno">  147</span>&#160;  <span class="comment">//  PCL_ERROR(</span></div>
<div class="line"><a name="l00148"></a><span class="lineno">  148</span>&#160;  <span class="comment">//    &quot;[pcl::Hough3DGrouping::recognizeModelInstances()] Error! Scene cloud not set.\n&quot;);</span></div>
<div class="line"><a name="l00149"></a><span class="lineno">  149</span>&#160;  <span class="comment">//  return (false);</span></div>
<div class="line"><a name="l00150"></a><span class="lineno">  150</span>&#160;  <span class="comment">//}</span></div>
<div class="line"><a name="l00151"></a><span class="lineno">  151</span>&#160; </div>
<div class="line"><a name="l00152"></a><span class="lineno">  152</span>&#160;  <span class="keywordflow">if</span> (!<a class="code" href="classpcl_1_1_hough3_d_grouping.html#af5117555131a60e60ba2928005981f7a">scene_rf_</a>)</div>
<div class="line"><a name="l00153"></a><span class="lineno">  153</span>&#160;  {</div>
<div class="line"><a name="l00154"></a><span class="lineno">  154</span>&#160;    ModelRfCloudPtr new_scene_rf (<span class="keyword">new</span> ModelRfCloud ());</div>
<div class="line"><a name="l00155"></a><span class="lineno">  155</span>&#160;    <a class="code" href="classpcl_1_1_hough3_d_grouping.html#a778fa8404b2562b23f3dcaf71a5afe58">computeRf</a> (<a class="code" href="classpcl_1_1_correspondence_grouping.html#ab2b931fafa436428801a5674298c8e44">scene_</a>, *new_scene_rf);</div>
<div class="line"><a name="l00156"></a><span class="lineno">  156</span>&#160;    <a class="code" href="classpcl_1_1_hough3_d_grouping.html#af5117555131a60e60ba2928005981f7a">scene_rf_</a> = new_scene_rf;</div>
<div class="line"><a name="l00157"></a><span class="lineno">  157</span>&#160;    <span class="comment">//PCL_ERROR(</span></div>
<div class="line"><a name="l00158"></a><span class="lineno">  158</span>&#160;    <span class="comment">//  &quot;[pcl::Hough3DGrouping::recognizeModelInstances()] Error! Scene reference frame not set.\n&quot;);</span></div>
<div class="line"><a name="l00159"></a><span class="lineno">  159</span>&#160;    <span class="comment">//return (false);</span></div>
<div class="line"><a name="l00160"></a><span class="lineno">  160</span>&#160;  }</div>
<div class="line"><a name="l00161"></a><span class="lineno">  161</span>&#160; </div>
<div class="line"><a name="l00162"></a><span class="lineno">  162</span>&#160;  <span class="keywordflow">if</span> (<a class="code" href="classpcl_1_1_correspondence_grouping.html#ab2b931fafa436428801a5674298c8e44">scene_</a>-&gt;size () != <a class="code" href="classpcl_1_1_hough3_d_grouping.html#af5117555131a60e60ba2928005981f7a">scene_rf_</a>-&gt;size ())</div>
<div class="line"><a name="l00163"></a><span class="lineno">  163</span>&#160;  {</div>
<div class="line"><a name="l00164"></a><span class="lineno">  164</span>&#160;    PCL_ERROR (<span class="stringliteral">&quot;[pcl::Hough3DGrouping::recognizeModelInstances()] Error! Scene cloud size != Scene RF cloud size.\n&quot;</span>);</div>
<div class="line"><a name="l00165"></a><span class="lineno">  165</span>&#160;    <span class="keywordflow">return</span> (<span class="keyword">false</span>);</div>
<div class="line"><a name="l00166"></a><span class="lineno">  166</span>&#160;  }</div>
<div class="line"><a name="l00167"></a><span class="lineno">  167</span>&#160; </div>
<div class="line"><a name="l00168"></a><span class="lineno">  168</span>&#160;  <span class="keywordflow">if</span> (!<a class="code" href="classpcl_1_1_correspondence_grouping.html#a0a7d1212a23f16717d0ea30f83a79578">model_scene_corrs_</a>)</div>
<div class="line"><a name="l00169"></a><span class="lineno">  169</span>&#160;  {</div>
<div class="line"><a name="l00170"></a><span class="lineno">  170</span>&#160;    PCL_ERROR (<span class="stringliteral">&quot;[pcl::Hough3DGrouping::recognizeModelInstances()] Error! Correspondences not set, please set them before calling again this function.\n&quot;</span>);</div>
<div class="line"><a name="l00171"></a><span class="lineno">  171</span>&#160;    <span class="keywordflow">return</span> (<span class="keyword">false</span>);</div>
<div class="line"><a name="l00172"></a><span class="lineno">  172</span>&#160;  }</div>
<div class="line"><a name="l00173"></a><span class="lineno">  173</span>&#160; </div>
<div class="line"><a name="l00174"></a><span class="lineno">  174</span>&#160;  <span class="keywordtype">int</span> n_matches = <span class="keyword">static_cast&lt;</span><span class="keywordtype">int</span><span class="keyword">&gt;</span> (<a class="code" href="classpcl_1_1_correspondence_grouping.html#a0a7d1212a23f16717d0ea30f83a79578">model_scene_corrs_</a>-&gt;size ());</div>
<div class="line"><a name="l00175"></a><span class="lineno">  175</span>&#160;  <span class="keywordflow">if</span> (n_matches == 0)</div>
<div class="line"><a name="l00176"></a><span class="lineno">  176</span>&#160;  {</div>
<div class="line"><a name="l00177"></a><span class="lineno">  177</span>&#160;    <span class="keywordflow">return</span> (<span class="keyword">false</span>);</div>
<div class="line"><a name="l00178"></a><span class="lineno">  178</span>&#160;  }</div>
<div class="line"><a name="l00179"></a><span class="lineno">  179</span>&#160; </div>
<div class="line"><a name="l00180"></a><span class="lineno">  180</span>&#160;  std::vector&lt;Eigen::Vector3d, Eigen::aligned_allocator&lt;Eigen::Vector3d&gt; &gt; scene_votes (n_matches);</div>
<div class="line"><a name="l00181"></a><span class="lineno">  181</span>&#160;  Eigen::Vector3d d_min, d_max, bin_size;</div>
<div class="line"><a name="l00182"></a><span class="lineno">  182</span>&#160; </div>
<div class="line"><a name="l00183"></a><span class="lineno">  183</span>&#160;  d_min.setConstant (std::numeric_limits&lt;double&gt;::max ());</div>
<div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;  d_max.setConstant (-std::numeric_limits&lt;double&gt;::max ());</div>
<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;  bin_size.setConstant (<a class="code" href="classpcl_1_1_hough3_d_grouping.html#a6f8845c48f998be01898b5e98dde61df">hough_bin_size_</a>);</div>
<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160; </div>
<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;  <span class="keywordtype">float</span> max_distance = -std::numeric_limits&lt;float&gt;::max ();</div>
<div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160; </div>
<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;  <span class="comment">// Calculating 3D Hough space dimensions and vote position for each match</span></div>
<div class="line"><a name="l00190"></a><span class="lineno">  190</span>&#160;  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i=0; i&lt; n_matches; ++i)</div>
<div class="line"><a name="l00191"></a><span class="lineno">  191</span>&#160;  {</div>
<div class="line"><a name="l00192"></a><span class="lineno">  192</span>&#160;    <span class="keywordtype">int</span> scene_index = <a class="code" href="classpcl_1_1_correspondence_grouping.html#a0a7d1212a23f16717d0ea30f83a79578">model_scene_corrs_</a>-&gt;at (i).index_match;</div>
<div class="line"><a name="l00193"></a><span class="lineno">  193</span>&#160;    <span class="keywordtype">int</span> model_index = <a class="code" href="classpcl_1_1_correspondence_grouping.html#a0a7d1212a23f16717d0ea30f83a79578">model_scene_corrs_</a>-&gt;at (i).index_query;</div>
<div class="line"><a name="l00194"></a><span class="lineno">  194</span>&#160; </div>
<div class="line"><a name="l00195"></a><span class="lineno">  195</span>&#160;    <span class="keyword">const</span> Eigen::Vector3f&amp; scene_point = <a class="code" href="classpcl_1_1_correspondence_grouping.html#ab2b931fafa436428801a5674298c8e44">scene_</a>-&gt;at (scene_index).getVector3fMap ();</div>
<div class="line"><a name="l00196"></a><span class="lineno">  196</span>&#160;    <span class="keyword">const</span> PointSceneRfT&amp;   scene_point_rf = <a class="code" href="classpcl_1_1_hough3_d_grouping.html#af5117555131a60e60ba2928005981f7a">scene_rf_</a>-&gt;at (scene_index);</div>
<div class="line"><a name="l00197"></a><span class="lineno">  197</span>&#160;    </div>
<div class="line"><a name="l00198"></a><span class="lineno">  198</span>&#160;    Eigen::Vector3f scene_point_rf_x (scene_point_rf.x_axis[0], scene_point_rf.x_axis[1], scene_point_rf.x_axis[2]);</div>
<div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;    Eigen::Vector3f scene_point_rf_y (scene_point_rf.y_axis[0], scene_point_rf.y_axis[1], scene_point_rf.y_axis[2]);</div>
<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;    Eigen::Vector3f scene_point_rf_z (scene_point_rf.z_axis[0], scene_point_rf.z_axis[1], scene_point_rf.z_axis[2]);</div>
<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160; </div>
<div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;    <span class="comment">//const Eigen::Vector3f&amp; model_point = input_-&gt;at (model_index).getVector3fMap ();</span></div>
<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;    <span class="keyword">const</span> Eigen::Vector3f&amp; model_point_vote = <a class="code" href="classpcl_1_1_hough3_d_grouping.html#a857b94d7c2951510b6e4990e5561b049">model_votes_</a>[model_index];</div>
<div class="line"><a name="l00204"></a><span class="lineno">  204</span>&#160; </div>
<div class="line"><a name="l00205"></a><span class="lineno">  205</span>&#160;    scene_votes[i].x () = scene_point_rf_x[0] * model_point_vote.x () + scene_point_rf_y[0] * model_point_vote.y () + scene_point_rf_z[0] * model_point_vote.z () + scene_point.x ();</div>
<div class="line"><a name="l00206"></a><span class="lineno">  206</span>&#160;    scene_votes[i].y () = scene_point_rf_x[1] * model_point_vote.x () + scene_point_rf_y[1] * model_point_vote.y () + scene_point_rf_z[1] * model_point_vote.z () + scene_point.y ();</div>
<div class="line"><a name="l00207"></a><span class="lineno">  207</span>&#160;    scene_votes[i].z () = scene_point_rf_x[2] * model_point_vote.x () + scene_point_rf_y[2] * model_point_vote.y () + scene_point_rf_z[2] * model_point_vote.z () + scene_point.z ();</div>
<div class="line"><a name="l00208"></a><span class="lineno">  208</span>&#160; </div>
<div class="line"><a name="l00209"></a><span class="lineno">  209</span>&#160;    <span class="keywordflow">if</span> (scene_votes[i].x () &lt; d_min.x ()) </div>
<div class="line"><a name="l00210"></a><span class="lineno">  210</span>&#160;      d_min.x () = scene_votes[i].x (); </div>
<div class="line"><a name="l00211"></a><span class="lineno">  211</span>&#160;    <span class="keywordflow">if</span> (scene_votes[i].x () &gt; d_max.x ()) </div>
<div class="line"><a name="l00212"></a><span class="lineno">  212</span>&#160;      d_max.x () = scene_votes[i].x (); </div>
<div class="line"><a name="l00213"></a><span class="lineno">  213</span>&#160; </div>
<div class="line"><a name="l00214"></a><span class="lineno">  214</span>&#160;    <span class="keywordflow">if</span> (scene_votes[i].y () &lt; d_min.y ()) </div>
<div class="line"><a name="l00215"></a><span class="lineno">  215</span>&#160;      d_min.y () = scene_votes[i].y (); </div>
<div class="line"><a name="l00216"></a><span class="lineno">  216</span>&#160;    <span class="keywordflow">if</span> (scene_votes[i].y () &gt; d_max.y ()) </div>
<div class="line"><a name="l00217"></a><span class="lineno">  217</span>&#160;      d_max.y () = scene_votes[i].y (); </div>
<div class="line"><a name="l00218"></a><span class="lineno">  218</span>&#160; </div>
<div class="line"><a name="l00219"></a><span class="lineno">  219</span>&#160;    <span class="keywordflow">if</span> (scene_votes[i].z () &lt; d_min.z ()) </div>
<div class="line"><a name="l00220"></a><span class="lineno">  220</span>&#160;      d_min.z () = scene_votes[i].z (); </div>
<div class="line"><a name="l00221"></a><span class="lineno">  221</span>&#160;    <span class="keywordflow">if</span> (scene_votes[i].z () &gt; d_max.z ()) </div>
<div class="line"><a name="l00222"></a><span class="lineno">  222</span>&#160;      d_max.z () = scene_votes[i].z ();</div>
<div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160; </div>
<div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;    <span class="comment">// Calculate max distance for interpolated votes</span></div>
<div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="classpcl_1_1_hough3_d_grouping.html#aee23f5064417bd6cbee419ab57d65d67">use_interpolation_</a> &amp;&amp; max_distance &lt; model_scene_corrs_-&gt;at (i).distance)</div>
<div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;    {</div>
<div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;      max_distance = <a class="code" href="classpcl_1_1_correspondence_grouping.html#a0a7d1212a23f16717d0ea30f83a79578">model_scene_corrs_</a>-&gt;at (i).distance;</div>
<div class="line"><a name="l00228"></a><span class="lineno">  228</span>&#160;    }</div>
<div class="line"><a name="l00229"></a><span class="lineno">  229</span>&#160;  }</div>
<div class="line"><a name="l00230"></a><span class="lineno">  230</span>&#160; </div>
<div class="line"><a name="l00231"></a><span class="lineno">  231</span>&#160;  <span class="comment">// Hough Voting</span></div>
<div class="line"><a name="l00232"></a><span class="lineno">  232</span>&#160;  <a class="code" href="classpcl_1_1_hough3_d_grouping.html#a8273da7056cb2fedbfb86e29ea3b188b">hough_space_</a>.reset (<span class="keyword">new</span> <a class="code" href="classpcl_1_1recognition_1_1_hough_space3_d.html">pcl::recognition::HoughSpace3D</a> (d_min, bin_size, d_max));</div>
<div class="line"><a name="l00233"></a><span class="lineno">  233</span>&#160; </div>
<div class="line"><a name="l00234"></a><span class="lineno">  234</span>&#160;  <span class="keywordflow">for</span> (<span class="keywordtype">int</span> i = 0; i &lt; n_matches; ++i)</div>
<div class="line"><a name="l00235"></a><span class="lineno">  235</span>&#160;  {</div>
<div class="line"><a name="l00236"></a><span class="lineno">  236</span>&#160;    <span class="keywordtype">double</span> weight = 1.0;</div>
<div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="classpcl_1_1_hough3_d_grouping.html#a54c782e31602fd647fd4973871c70002">use_distance_weight_</a> &amp;&amp; max_distance != 0)</div>
<div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;    {</div>
<div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;      weight = 1.0 - (<a class="code" href="classpcl_1_1_correspondence_grouping.html#a0a7d1212a23f16717d0ea30f83a79578">model_scene_corrs_</a>-&gt;at (i).distance / max_distance);</div>
<div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;    }</div>
<div class="line"><a name="l00241"></a><span class="lineno">  241</span>&#160;    <span class="keywordflow">if</span> (<a class="code" href="classpcl_1_1_hough3_d_grouping.html#aee23f5064417bd6cbee419ab57d65d67">use_interpolation_</a>)</div>
<div class="line"><a name="l00242"></a><span class="lineno">  242</span>&#160;    {</div>
<div class="line"><a name="l00243"></a><span class="lineno">  243</span>&#160;      <a class="code" href="classpcl_1_1_hough3_d_grouping.html#a8273da7056cb2fedbfb86e29ea3b188b">hough_space_</a>-&gt;voteInt (scene_votes[i], weight, i);</div>
<div class="line"><a name="l00244"></a><span class="lineno">  244</span>&#160;    } </div>
<div class="line"><a name="l00245"></a><span class="lineno">  245</span>&#160;    <span class="keywordflow">else</span></div>
<div class="line"><a name="l00246"></a><span class="lineno">  246</span>&#160;    {</div>
<div class="line"><a name="l00247"></a><span class="lineno">  247</span>&#160;      <a class="code" href="classpcl_1_1_hough3_d_grouping.html#a8273da7056cb2fedbfb86e29ea3b188b">hough_space_</a>-&gt;vote (scene_votes[i], weight, i);</div>
<div class="line"><a name="l00248"></a><span class="lineno">  248</span>&#160;    }</div>
<div class="line"><a name="l00249"></a><span class="lineno">  249</span>&#160;  }</div>
<div class="line"><a name="l00250"></a><span class="lineno">  250</span>&#160; </div>
<div class="line"><a name="l00251"></a><span class="lineno">  251</span>&#160;  <a class="code" href="classpcl_1_1_hough3_d_grouping.html#a693bad31eef837767c419eafef1c369f">hough_space_initialized_</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00252"></a><span class="lineno">  252</span>&#160; </div>
<div class="line"><a name="l00253"></a><span class="lineno">  253</span>&#160;  <span class="keywordflow">return</span> (<span class="keyword">true</span>);</div>
<div class="line"><a name="l00254"></a><span class="lineno">  254</span>&#160;}</div>
<div class="ttc" id="aclasspcl_1_1_hough3_d_grouping_html_a565b7cd857b83ecfb6b89c64c2fc4067"><div class="ttname"><a href="classpcl_1_1_hough3_d_grouping.html#a565b7cd857b83ecfb6b89c64c2fc4067">pcl::Hough3DGrouping::needs_training_</a></div><div class="ttdeci">bool needs_training_</div><div class="ttdoc">If the training of the Hough space is needed; set on change of either the input cloud or the input_rf...</div><div class="ttdef"><b>Definition:</b> hough_3d.h:448</div></div>
<div class="ttc" id="aclasspcl_1_1_hough3_d_grouping_html_a5e20d3e6f7946b303bf7ed0426ed940a"><div class="ttname"><a href="classpcl_1_1_hough3_d_grouping.html#a5e20d3e6f7946b303bf7ed0426ed940a">pcl::Hough3DGrouping::train</a></div><div class="ttdeci">bool train()</div><div class="ttdoc">Call this function after setting the input, the input_rf and the hough_bin_size parameters to perform...</div><div class="ttdef"><b>Definition:</b> hough_3d.hpp:84</div></div>
<div class="ttc" id="aclasspcl_1_1_hough3_d_grouping_html_a778fa8404b2562b23f3dcaf71a5afe58"><div class="ttname"><a href="classpcl_1_1_hough3_d_grouping.html#a778fa8404b2562b23f3dcaf71a5afe58">pcl::Hough3DGrouping::computeRf</a></div><div class="ttdeci">void computeRf(const boost::shared_ptr&lt; const pcl::PointCloud&lt; PointType &gt; &gt; &amp;input, pcl::PointCloud&lt; PointRfType &gt; &amp;rf)</div><div class="ttdoc">Computes the reference frame for an input cloud.</div><div class="ttdef"><b>Definition:</b> hough_3d.hpp:54</div></div>
<div class="ttc" id="aclasspcl_1_1_hough3_d_grouping_html_a857b94d7c2951510b6e4990e5561b049"><div class="ttname"><a href="classpcl_1_1_hough3_d_grouping.html#a857b94d7c2951510b6e4990e5561b049">pcl::Hough3DGrouping::model_votes_</a></div><div class="ttdeci">std::vector&lt; Eigen::Vector3f, Eigen::aligned_allocator&lt; Eigen::Vector3f &gt; &gt; model_votes_</div><div class="ttdoc">The result of the training. The vector between each model point and the centroid of the model adjuste...</div><div class="ttdef"><b>Definition:</b> hough_3d.h:451</div></div>
<div class="ttc" id="aclasspcl_1_1recognition_1_1_hough_space3_d_html"><div class="ttname"><a href="classpcl_1_1recognition_1_1_hough_space3_d.html">pcl::recognition::HoughSpace3D</a></div><div class="ttdoc">HoughSpace3D is a 3D voting space. Cast votes can be interpolated in order to better deal with approx...</div><div class="ttdef"><b>Definition:</b> hough_3d.h:56</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a39a0170877c51fbaf51e1119ecc34c05"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a39a0170877c51fbaf51e1119ecc34c05">&#9670;&nbsp;</a></span>recognize() <span class="overload">[1/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointModelT , typename PointSceneT , typename PointModelRfT , typename PointSceneRfT &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classpcl_1_1_hough3_d_grouping.html">pcl::Hough3DGrouping</a>&lt; PointModelT, PointSceneT, PointModelRfT, PointSceneRfT &gt;::recognize </td>
          <td>(</td>
          <td class="paramtype">std::vector&lt; Eigen::Matrix4f, Eigen::aligned_allocator&lt; Eigen::Matrix4f &gt; &gt; &amp;&#160;</td>
          <td class="paramname"><em>transformations</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>The main function, recognizes instances of the model into the scene set by the user. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">transformations</td><td>a vector containing one transformation matrix for each instance of the model recognized into the scene.</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>true if the recognition had been successful or false if errors have occurred. </dd></dl>
<div class="fragment"><div class="line"><a name="l00335"></a><span class="lineno">  335</span>&#160;{</div>
<div class="line"><a name="l00336"></a><span class="lineno">  336</span>&#160;  std::vector&lt;pcl::Correspondences&gt; model_instances;</div>
<div class="line"><a name="l00337"></a><span class="lineno">  337</span>&#160;  <span class="keywordflow">return</span> (this-&gt;<a class="code" href="classpcl_1_1_hough3_d_grouping.html#a39a0170877c51fbaf51e1119ecc34c05">recognize</a> (transformations, model_instances));</div>
<div class="line"><a name="l00338"></a><span class="lineno">  338</span>&#160;}</div>
<div class="ttc" id="aclasspcl_1_1_hough3_d_grouping_html_a39a0170877c51fbaf51e1119ecc34c05"><div class="ttname"><a href="classpcl_1_1_hough3_d_grouping.html#a39a0170877c51fbaf51e1119ecc34c05">pcl::Hough3DGrouping::recognize</a></div><div class="ttdeci">bool recognize(std::vector&lt; Eigen::Matrix4f, Eigen::aligned_allocator&lt; Eigen::Matrix4f &gt; &gt; &amp;transformations)</div><div class="ttdoc">The main function, recognizes instances of the model into the scene set by the user.</div><div class="ttdef"><b>Definition:</b> hough_3d.hpp:333</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="addef52d8b2bfbfa9416a42aa3dce28d9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#addef52d8b2bfbfa9416a42aa3dce28d9">&#9670;&nbsp;</a></span>recognize() <span class="overload">[2/2]</span></h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointModelT , typename PointSceneT , typename PointModelRfT , typename PointSceneRfT &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classpcl_1_1_hough3_d_grouping.html">pcl::Hough3DGrouping</a>&lt; PointModelT, PointSceneT, PointModelRfT, PointSceneRfT &gt;::recognize </td>
          <td>(</td>
          <td class="paramtype">std::vector&lt; Eigen::Matrix4f, Eigen::aligned_allocator&lt; Eigen::Matrix4f &gt; &gt; &amp;&#160;</td>
          <td class="paramname"><em>transformations</em>, </td>
        </tr>
        <tr>
          <td class="paramkey"></td>
          <td></td>
          <td class="paramtype">std::vector&lt; pcl::Correspondences &gt; &amp;&#160;</td>
          <td class="paramname"><em>clustered_corrs</em>&#160;</td>
        </tr>
        <tr>
          <td></td>
          <td>)</td>
          <td></td><td></td>
        </tr>
      </table>
</div><div class="memdoc">

<p>The main function, recognizes instances of the model into the scene set by the user. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[out]</td><td class="paramname">transformations</td><td>a vector containing one transformation matrix for each instance of the model recognized into the scene. </td></tr>
    <tr><td class="paramdir">[out]</td><td class="paramname">clustered_corrs</td><td>a vector containing the correspondences for each instance of the model found within the input data (the same output of clusterCorrespondences).</td></tr>
  </table>
  </dd>
</dl>
<dl class="section return"><dt>返回</dt><dd>true if the recognition had been successful or false if errors have occurred. </dd></dl>
<div class="fragment"><div class="line"><a name="l00344"></a><span class="lineno">  344</span>&#160;{</div>
<div class="line"><a name="l00345"></a><span class="lineno">  345</span>&#160;  transformations.clear ();</div>
<div class="line"><a name="l00346"></a><span class="lineno">  346</span>&#160;  <span class="keywordflow">if</span> (!this-&gt;<a class="code" href="classpcl_1_1_correspondence_grouping.html#a937a0f4ffc3abc7990db895252bbfeba">initCompute</a> ())</div>
<div class="line"><a name="l00347"></a><span class="lineno">  347</span>&#160;  {</div>
<div class="line"><a name="l00348"></a><span class="lineno">  348</span>&#160;    PCL_ERROR (<span class="stringliteral">&quot;[pcl::Hough3DGrouping::recognize()] Error! Model cloud or Scene cloud not set, please set them before calling again this function.\n&quot;</span>);</div>
<div class="line"><a name="l00349"></a><span class="lineno">  349</span>&#160;    <span class="keywordflow">return</span> (<span class="keyword">false</span>);</div>
<div class="line"><a name="l00350"></a><span class="lineno">  350</span>&#160;  }</div>
<div class="line"><a name="l00351"></a><span class="lineno">  351</span>&#160; </div>
<div class="line"><a name="l00352"></a><span class="lineno">  352</span>&#160;  <a class="code" href="classpcl_1_1_hough3_d_grouping.html#a2ce0b05ab0847a9719dfa7e6f05bb64f">clusterCorrespondences</a> (clustered_corrs);</div>
<div class="line"><a name="l00353"></a><span class="lineno">  353</span>&#160; </div>
<div class="line"><a name="l00354"></a><span class="lineno">  354</span>&#160;  transformations = <a class="code" href="classpcl_1_1_hough3_d_grouping.html#a93db7b188c28ab188c34070408bc0940">found_transformations_</a>;</div>
<div class="line"><a name="l00355"></a><span class="lineno">  355</span>&#160; </div>
<div class="line"><a name="l00357"></a><span class="lineno">  357</span>&#160;  <span class="comment">//PointCloudPtr temp_scene_cloud_ptr (new PointCloud);</span></div>
<div class="line"><a name="l00358"></a><span class="lineno">  358</span>&#160;  <span class="comment">//pcl::copyPointCloud&lt;PointSceneT, PointModelT&gt; (*scene_, *temp_scene_cloud_ptr);</span></div>
<div class="line"><a name="l00359"></a><span class="lineno">  359</span>&#160; </div>
<div class="line"><a name="l00360"></a><span class="lineno">  360</span>&#160;  <span class="comment">//for (size_t i = 0; i &lt; model_instances.size (); ++i)</span></div>
<div class="line"><a name="l00361"></a><span class="lineno">  361</span>&#160;  <span class="comment">//{</span></div>
<div class="line"><a name="l00362"></a><span class="lineno">  362</span>&#160;  <span class="comment">//  Eigen::Matrix4f curr_transf;</span></div>
<div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;  <span class="comment">//  if (getTransformMatrix (temp_scene_cloud_ptr, model_instances[i], curr_transf))</span></div>
<div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160;  <span class="comment">//    transformations.push_back (curr_transf);</span></div>
<div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;  <span class="comment">//}</span></div>
<div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160; </div>
<div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;  this-&gt;<a class="code" href="classpcl_1_1_correspondence_grouping.html#aa387a7273a34fe84db945ba8c5bc2754">deinitCompute</a> ();</div>
<div class="line"><a name="l00368"></a><span class="lineno">  368</span>&#160;  <span class="keywordflow">return</span> (<span class="keyword">true</span>);</div>
<div class="line"><a name="l00369"></a><span class="lineno">  369</span>&#160;}</div>
<div class="ttc" id="aclasspcl_1_1_correspondence_grouping_html_a937a0f4ffc3abc7990db895252bbfeba"><div class="ttname"><a href="classpcl_1_1_correspondence_grouping.html#a937a0f4ffc3abc7990db895252bbfeba">pcl::CorrespondenceGrouping::initCompute</a></div><div class="ttdeci">bool initCompute()</div><div class="ttdoc">This method should get called before starting the actual computation.</div><div class="ttdef"><b>Definition:</b> correspondence_grouping.h:160</div></div>
<div class="ttc" id="aclasspcl_1_1_correspondence_grouping_html_aa387a7273a34fe84db945ba8c5bc2754"><div class="ttname"><a href="classpcl_1_1_correspondence_grouping.html#aa387a7273a34fe84db945ba8c5bc2754">pcl::CorrespondenceGrouping::deinitCompute</a></div><div class="ttdeci">bool deinitCompute()</div><div class="ttdoc">This method should get called after finishing the actual computation.</div><div class="ttdef"><b>Definition:</b> correspondence_grouping.h:192</div></div>
<div class="ttc" id="aclasspcl_1_1_hough3_d_grouping_html_a2ce0b05ab0847a9719dfa7e6f05bb64f"><div class="ttname"><a href="classpcl_1_1_hough3_d_grouping.html#a2ce0b05ab0847a9719dfa7e6f05bb64f">pcl::Hough3DGrouping::clusterCorrespondences</a></div><div class="ttdeci">void clusterCorrespondences(std::vector&lt; Correspondences &gt; &amp;model_instances)</div><div class="ttdoc">Cluster the input correspondences in order to distinguish between different instances of the model in...</div><div class="ttdef"><b>Definition:</b> hough_3d.hpp:258</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a866d42f0b08775aae337d2ed61c1c834"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a866d42f0b08775aae337d2ed61c1c834">&#9670;&nbsp;</a></span>setHoughBinSize()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointModelT , typename PointSceneT , typename PointModelRfT  = pcl::ReferenceFrame, typename PointSceneRfT  = pcl::ReferenceFrame&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1_hough3_d_grouping.html">pcl::Hough3DGrouping</a>&lt; PointModelT, PointSceneT, PointModelRfT, PointSceneRfT &gt;::setHoughBinSize </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>bin_size</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Sets the size of each bin into the Hough space. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">bin_size</td><td>the size of each Hough space's bin. </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00296"></a><span class="lineno">  296</span>&#160;      {</div>
<div class="line"><a name="l00297"></a><span class="lineno">  297</span>&#160;        <a class="code" href="classpcl_1_1_hough3_d_grouping.html#a6f8845c48f998be01898b5e98dde61df">hough_bin_size_</a> = bin_size;</div>
<div class="line"><a name="l00298"></a><span class="lineno">  298</span>&#160;        <a class="code" href="classpcl_1_1_hough3_d_grouping.html#a693bad31eef837767c419eafef1c369f">hough_space_initialized_</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00299"></a><span class="lineno">  299</span>&#160;      }</div>
</div><!-- fragment -->
</div>
</div>
<a id="ac832e662f91a1442357102e1fcc86ead"></a>
<h2 class="memtitle"><span class="permalink"><a href="#ac832e662f91a1442357102e1fcc86ead">&#9670;&nbsp;</a></span>setHoughThreshold()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointModelT , typename PointSceneT , typename PointModelRfT  = pcl::ReferenceFrame, typename PointSceneRfT  = pcl::ReferenceFrame&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1_hough3_d_grouping.html">pcl::Hough3DGrouping</a>&lt; PointModelT, PointSceneT, PointModelRfT, PointSceneRfT &gt;::setHoughThreshold </td>
          <td>(</td>
          <td class="paramtype">double&#160;</td>
          <td class="paramname"><em>threshold</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Sets the minimum number of votes in the Hough space needed to infer the presence of a model instance into the scene cloud. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">threshold</td><td>the threshold for the Hough space voting, if set between -1 and 0 the maximum vote in the entire space is automatically calculated and -threshold the maximum value is used as a threshold. This means that a value between -1 and 0 should be used only if at least one instance of the model is always present in the scene, or if this false positive can be filtered later. </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00276"></a><span class="lineno">  276</span>&#160;      {</div>
<div class="line"><a name="l00277"></a><span class="lineno">  277</span>&#160;        <a class="code" href="classpcl_1_1_hough3_d_grouping.html#a4143dedbc983daf41a4a1247ae93fb61">hough_threshold_</a> = threshold;</div>
<div class="line"><a name="l00278"></a><span class="lineno">  278</span>&#160;      }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a128db6281c9d8e0b38c6d430ef058116"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a128db6281c9d8e0b38c6d430ef058116">&#9670;&nbsp;</a></span>setInputCloud()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointModelT , typename PointSceneT , typename PointModelRfT  = pcl::ReferenceFrame, typename PointSceneRfT  = pcl::ReferenceFrame&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1_hough3_d_grouping.html">pcl::Hough3DGrouping</a>&lt; PointModelT, PointSceneT, PointModelRfT, PointSceneRfT &gt;::setInputCloud </td>
          <td>(</td>
          <td class="paramtype">const PointCloudConstPtr &amp;&#160;</td>
          <td class="paramname"><em>cloud</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Provide a pointer to the input dataset. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">cloud</td><td>the const boost shared pointer to a <a class="el" href="classpcl_1_1_point_cloud.html" title="PointCloud represents the base class in PCL for storing collections of 3D points.">PointCloud</a> message. </td></tr>
  </table>
  </dd>
</dl>

<p>重载 <a class="el" href="classpcl_1_1_p_c_l_base.html#a1952d7101f3942bac3b69ed55c1ca7ea">pcl::PCLBase&lt; PointModelT &gt;</a> .</p>
<div class="fragment"><div class="line"><a name="l00184"></a><span class="lineno">  184</span>&#160;      {</div>
<div class="line"><a name="l00185"></a><span class="lineno">  185</span>&#160;        <a class="code" href="classpcl_1_1_p_c_l_base.html#a1952d7101f3942bac3b69ed55c1ca7ea">PCLBase&lt;PointModelT&gt;::setInputCloud</a> (cloud);</div>
<div class="line"><a name="l00186"></a><span class="lineno">  186</span>&#160;        <a class="code" href="classpcl_1_1_hough3_d_grouping.html#a565b7cd857b83ecfb6b89c64c2fc4067">needs_training_</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00187"></a><span class="lineno">  187</span>&#160;        <a class="code" href="classpcl_1_1_hough3_d_grouping.html#a693bad31eef837767c419eafef1c369f">hough_space_initialized_</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00188"></a><span class="lineno">  188</span>&#160;        <a class="code" href="classpcl_1_1_hough3_d_grouping.html#ac15a3f73f40e24c79fcd74bf35ffe045">input_rf_</a>.reset();</div>
<div class="line"><a name="l00189"></a><span class="lineno">  189</span>&#160;      }</div>
<div class="ttc" id="aclasspcl_1_1_p_c_l_base_html_a1952d7101f3942bac3b69ed55c1ca7ea"><div class="ttname"><a href="classpcl_1_1_p_c_l_base.html#a1952d7101f3942bac3b69ed55c1ca7ea">pcl::PCLBase::setInputCloud</a></div><div class="ttdeci">virtual void setInputCloud(const PointCloudConstPtr &amp;cloud)</div><div class="ttdoc">Provide a pointer to the input dataset</div><div class="ttdef"><b>Definition:</b> pcl_base.hpp:66</div></div>
</div><!-- fragment -->
</div>
</div>
<a id="a8f7af4b86f2f7effa2eabd844f4ffe28"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a8f7af4b86f2f7effa2eabd844f4ffe28">&#9670;&nbsp;</a></span>setInputRf()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointModelT , typename PointSceneT , typename PointModelRfT  = pcl::ReferenceFrame, typename PointSceneRfT  = pcl::ReferenceFrame&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1_hough3_d_grouping.html">pcl::Hough3DGrouping</a>&lt; PointModelT, PointSceneT, PointModelRfT, PointSceneRfT &gt;::setInputRf </td>
          <td>(</td>
          <td class="paramtype">const ModelRfCloudConstPtr &amp;&#160;</td>
          <td class="paramname"><em>input_rf</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Provide a pointer to the input dataset's reference frames. Each point in the reference frame cloud should be the reference frame of the correspondent point in the input dataset. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">input_rf</td><td>the pointer to the input cloud's reference frames. </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00199"></a><span class="lineno">  199</span>&#160;      {</div>
<div class="line"><a name="l00200"></a><span class="lineno">  200</span>&#160;        <a class="code" href="classpcl_1_1_hough3_d_grouping.html#ac15a3f73f40e24c79fcd74bf35ffe045">input_rf_</a> = input_rf;</div>
<div class="line"><a name="l00201"></a><span class="lineno">  201</span>&#160;        <a class="code" href="classpcl_1_1_hough3_d_grouping.html#a565b7cd857b83ecfb6b89c64c2fc4067">needs_training_</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00202"></a><span class="lineno">  202</span>&#160;        <a class="code" href="classpcl_1_1_hough3_d_grouping.html#a693bad31eef837767c419eafef1c369f">hough_space_initialized_</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00203"></a><span class="lineno">  203</span>&#160;      }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a215586d8e29fb530c8aa6ab461699492"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a215586d8e29fb530c8aa6ab461699492">&#9670;&nbsp;</a></span>setLocalRfNormalsSearchRadius()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointModelT , typename PointSceneT , typename PointModelRfT  = pcl::ReferenceFrame, typename PointSceneRfT  = pcl::ReferenceFrame&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1_hough3_d_grouping.html">pcl::Hough3DGrouping</a>&lt; PointModelT, PointSceneT, PointModelRfT, PointSceneRfT &gt;::setLocalRfNormalsSearchRadius </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>local_rf_normals_search_radius</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>If the Local reference frame has not been set for either the model cloud or the scene cloud, this algorithm makes the computation itself but needs a suitable search radius to compute the normals in order to subsequently compute the RF (if not set a default 15 nearest neighbors search is performed). </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">local_rf_normals_search_radius</td><td>the normals search radius for the local reference frame calculation. </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00363"></a><span class="lineno">  363</span>&#160;      {</div>
<div class="line"><a name="l00364"></a><span class="lineno">  364</span>&#160;        <a class="code" href="classpcl_1_1_hough3_d_grouping.html#a167c6e65e18cf2b7524630ce7c4f8b53">local_rf_normals_search_radius_</a> = local_rf_normals_search_radius;</div>
<div class="line"><a name="l00365"></a><span class="lineno">  365</span>&#160;        <a class="code" href="classpcl_1_1_hough3_d_grouping.html#a565b7cd857b83ecfb6b89c64c2fc4067">needs_training_</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00366"></a><span class="lineno">  366</span>&#160;        <a class="code" href="classpcl_1_1_hough3_d_grouping.html#a693bad31eef837767c419eafef1c369f">hough_space_initialized_</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00367"></a><span class="lineno">  367</span>&#160;      }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a2291ba9d84199dce9b29195edf771b30"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2291ba9d84199dce9b29195edf771b30">&#9670;&nbsp;</a></span>setLocalRfSearchRadius()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointModelT , typename PointSceneT , typename PointModelRfT  = pcl::ReferenceFrame, typename PointSceneRfT  = pcl::ReferenceFrame&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1_hough3_d_grouping.html">pcl::Hough3DGrouping</a>&lt; PointModelT, PointSceneT, PointModelRfT, PointSceneRfT &gt;::setLocalRfSearchRadius </td>
          <td>(</td>
          <td class="paramtype">float&#160;</td>
          <td class="paramname"><em>local_rf_search_radius</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>If the Local reference frame has not been set for either the model cloud or the scene cloud, this algorithm makes the computation itself but needs a suitable search radius to do so. </p>
<dl class="section attention"><dt>注意</dt><dd>This parameter NEEDS to be set if the reference frames are not precomputed externally, otherwise the recognition results won't be correct.</dd></dl>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">local_rf_search_radius</td><td>the search radius for the local reference frame calculation. </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00390"></a><span class="lineno">  390</span>&#160;      {</div>
<div class="line"><a name="l00391"></a><span class="lineno">  391</span>&#160;        <a class="code" href="classpcl_1_1_hough3_d_grouping.html#aea394d09fe22404ae9487c762c034c08">local_rf_search_radius_</a> = local_rf_search_radius;</div>
<div class="line"><a name="l00392"></a><span class="lineno">  392</span>&#160;        <a class="code" href="classpcl_1_1_hough3_d_grouping.html#a565b7cd857b83ecfb6b89c64c2fc4067">needs_training_</a> = <span class="keyword">true</span>;</div>
<div class="line"><a name="l00393"></a><span class="lineno">  393</span>&#160;        <a class="code" href="classpcl_1_1_hough3_d_grouping.html#a693bad31eef837767c419eafef1c369f">hough_space_initialized_</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00394"></a><span class="lineno">  394</span>&#160;      }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a597bc71af146923a2717359e8ed45e50"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a597bc71af146923a2717359e8ed45e50">&#9670;&nbsp;</a></span>setModelSceneCorrespondences()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointModelT , typename PointSceneT , typename PointModelRfT  = pcl::ReferenceFrame, typename PointSceneRfT  = pcl::ReferenceFrame&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1_hough3_d_grouping.html">pcl::Hough3DGrouping</a>&lt; PointModelT, PointSceneT, PointModelRfT, PointSceneRfT &gt;::setModelSceneCorrespondences </td>
          <td>(</td>
          <td class="paramtype">const CorrespondencesConstPtr &amp;&#160;</td>
          <td class="paramname"><em>corrs</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Provide a pointer to the precomputed correspondences between points in the input dataset and points in the scene dataset. The correspondences are going to be clustered into different model instances by the algorithm. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">corrs</td><td>the correspondences between the model and the scene. </td></tr>
  </table>
  </dd>
</dl>

<p>重载 <a class="el" href="classpcl_1_1_correspondence_grouping.html#a392d86a915e03e3c9ba811bdfef5c7da">pcl::CorrespondenceGrouping&lt; PointModelT, PointSceneT &gt;</a> .</p>
<div class="fragment"><div class="line"><a name="l00262"></a><span class="lineno">  262</span>&#160;      {</div>
<div class="line"><a name="l00263"></a><span class="lineno">  263</span>&#160;        <a class="code" href="classpcl_1_1_correspondence_grouping.html#a0a7d1212a23f16717d0ea30f83a79578">model_scene_corrs_</a> = corrs;</div>
<div class="line"><a name="l00264"></a><span class="lineno">  264</span>&#160;        <a class="code" href="classpcl_1_1_hough3_d_grouping.html#a693bad31eef837767c419eafef1c369f">hough_space_initialized_</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00265"></a><span class="lineno">  265</span>&#160;      }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a877d543207cc31cb21536ec566f5b3e9"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a877d543207cc31cb21536ec566f5b3e9">&#9670;&nbsp;</a></span>setSceneCloud()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointModelT , typename PointSceneT , typename PointModelRfT  = pcl::ReferenceFrame, typename PointSceneRfT  = pcl::ReferenceFrame&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1_hough3_d_grouping.html">pcl::Hough3DGrouping</a>&lt; PointModelT, PointSceneT, PointModelRfT, PointSceneRfT &gt;::setSceneCloud </td>
          <td>(</td>
          <td class="paramtype">const SceneCloudConstPtr &amp;&#160;</td>
          <td class="paramname"><em>scene</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span><span class="mlabel">virtual</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Provide a pointer to the scene dataset (i.e. the cloud in which the algorithm has to search for instances of the input model) </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">scene</td><td>the const boost shared pointer to a <a class="el" href="classpcl_1_1_point_cloud.html" title="PointCloud represents the base class in PCL for storing collections of 3D points.">PointCloud</a> message. </td></tr>
  </table>
  </dd>
</dl>

<p>重载 <a class="el" href="classpcl_1_1_correspondence_grouping.html#a87362e2d2f6dc05a4add9122e5106c7e">pcl::CorrespondenceGrouping&lt; PointModelT, PointSceneT &gt;</a> .</p>
<div class="fragment"><div class="line"><a name="l00223"></a><span class="lineno">  223</span>&#160;      {</div>
<div class="line"><a name="l00224"></a><span class="lineno">  224</span>&#160;        <a class="code" href="classpcl_1_1_correspondence_grouping.html#ab2b931fafa436428801a5674298c8e44">scene_</a> = scene;</div>
<div class="line"><a name="l00225"></a><span class="lineno">  225</span>&#160;        <a class="code" href="classpcl_1_1_hough3_d_grouping.html#a693bad31eef837767c419eafef1c369f">hough_space_initialized_</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00226"></a><span class="lineno">  226</span>&#160;        <a class="code" href="classpcl_1_1_hough3_d_grouping.html#af5117555131a60e60ba2928005981f7a">scene_rf_</a>.reset();</div>
<div class="line"><a name="l00227"></a><span class="lineno">  227</span>&#160;      }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a2ad258fd1cd391d8e3ee09adc4cc94e3"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a2ad258fd1cd391d8e3ee09adc4cc94e3">&#9670;&nbsp;</a></span>setSceneRf()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointModelT , typename PointSceneT , typename PointModelRfT  = pcl::ReferenceFrame, typename PointSceneRfT  = pcl::ReferenceFrame&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1_hough3_d_grouping.html">pcl::Hough3DGrouping</a>&lt; PointModelT, PointSceneT, PointModelRfT, PointSceneRfT &gt;::setSceneRf </td>
          <td>(</td>
          <td class="paramtype">const SceneRfCloudConstPtr &amp;&#160;</td>
          <td class="paramname"><em>scene_rf</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Provide a pointer to the scene dataset's reference frames. Each point in the reference frame cloud should be the reference frame of the correspondent point in the scene dataset. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">scene_rf</td><td>the pointer to the scene cloud's reference frames. </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00237"></a><span class="lineno">  237</span>&#160;      {</div>
<div class="line"><a name="l00238"></a><span class="lineno">  238</span>&#160;        <a class="code" href="classpcl_1_1_hough3_d_grouping.html#af5117555131a60e60ba2928005981f7a">scene_rf_</a> = scene_rf;</div>
<div class="line"><a name="l00239"></a><span class="lineno">  239</span>&#160;        <a class="code" href="classpcl_1_1_hough3_d_grouping.html#a693bad31eef837767c419eafef1c369f">hough_space_initialized_</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00240"></a><span class="lineno">  240</span>&#160;      }</div>
</div><!-- fragment -->
</div>
</div>
<a id="acc900a577b052056bff781bef095884e"></a>
<h2 class="memtitle"><span class="permalink"><a href="#acc900a577b052056bff781bef095884e">&#9670;&nbsp;</a></span>setUseDistanceWeight()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointModelT , typename PointSceneT , typename PointModelRfT  = pcl::ReferenceFrame, typename PointSceneRfT  = pcl::ReferenceFrame&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1_hough3_d_grouping.html">pcl::Hough3DGrouping</a>&lt; PointModelT, PointSceneT, PointModelRfT, PointSceneRfT &gt;::setUseDistanceWeight </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>use_distance_weight</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Sets whether the vote casting procedure uses the correspondence's distance as a score. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">use_distance_weight</td><td>the algorithm should use the weighted distance when calculating the Hough voting score. </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00340"></a><span class="lineno">  340</span>&#160;      {</div>
<div class="line"><a name="l00341"></a><span class="lineno">  341</span>&#160;        <a class="code" href="classpcl_1_1_hough3_d_grouping.html#a54c782e31602fd647fd4973871c70002">use_distance_weight_</a> = use_distance_weight;</div>
<div class="line"><a name="l00342"></a><span class="lineno">  342</span>&#160;        <a class="code" href="classpcl_1_1_hough3_d_grouping.html#a693bad31eef837767c419eafef1c369f">hough_space_initialized_</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00343"></a><span class="lineno">  343</span>&#160;      }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a0102fa52853e876fe4d778303f5141a5"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a0102fa52853e876fe4d778303f5141a5">&#9670;&nbsp;</a></span>setUseInterpolation()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointModelT , typename PointSceneT , typename PointModelRfT  = pcl::ReferenceFrame, typename PointSceneRfT  = pcl::ReferenceFrame&gt; </div>
<table class="mlabels">
  <tr>
  <td class="mlabels-left">
      <table class="memname">
        <tr>
          <td class="memname">void <a class="el" href="classpcl_1_1_hough3_d_grouping.html">pcl::Hough3DGrouping</a>&lt; PointModelT, PointSceneT, PointModelRfT, PointSceneRfT &gt;::setUseInterpolation </td>
          <td>(</td>
          <td class="paramtype">bool&#160;</td>
          <td class="paramname"><em>use_interpolation</em></td><td>)</td>
          <td></td>
        </tr>
      </table>
  </td>
  <td class="mlabels-right">
<span class="mlabels"><span class="mlabel">inline</span></span>  </td>
  </tr>
</table>
</div><div class="memdoc">

<p>Sets whether the vote casting procedure interpolates the score between neighboring bins of the Hough space or not. </p>
<dl class="params"><dt>参数</dt><dd>
  <table class="params">
    <tr><td class="paramdir">[in]</td><td class="paramname">use_interpolation</td><td>the algorithm should interpolate the vote score between neighboring bins. </td></tr>
  </table>
  </dd>
</dl>
<div class="fragment"><div class="line"><a name="l00318"></a><span class="lineno">  318</span>&#160;      {</div>
<div class="line"><a name="l00319"></a><span class="lineno">  319</span>&#160;        <a class="code" href="classpcl_1_1_hough3_d_grouping.html#aee23f5064417bd6cbee419ab57d65d67">use_interpolation_</a> = use_interpolation;</div>
<div class="line"><a name="l00320"></a><span class="lineno">  320</span>&#160;        <a class="code" href="classpcl_1_1_hough3_d_grouping.html#a693bad31eef837767c419eafef1c369f">hough_space_initialized_</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00321"></a><span class="lineno">  321</span>&#160;      }</div>
</div><!-- fragment -->
</div>
</div>
<a id="a5e20d3e6f7946b303bf7ed0426ed940a"></a>
<h2 class="memtitle"><span class="permalink"><a href="#a5e20d3e6f7946b303bf7ed0426ed940a">&#9670;&nbsp;</a></span>train()</h2>

<div class="memitem">
<div class="memproto">
<div class="memtemplate">
template&lt;typename PointModelT , typename PointSceneT , typename PointModelRfT , typename PointSceneRfT &gt; </div>
      <table class="memname">
        <tr>
          <td class="memname">bool <a class="el" href="classpcl_1_1_hough3_d_grouping.html">pcl::Hough3DGrouping</a>&lt; PointModelT, PointSceneT, PointModelRfT, PointSceneRfT &gt;::train</td>
        </tr>
      </table>
</div><div class="memdoc">

<p>Call this function after setting the input, the input_rf and the hough_bin_size parameters to perform an off line training of the algorithm. This might be useful if one wants to perform once and for all a pre-computation of votes that only concern the models, increasing the on-line efficiency of the grouping algorithm. The algorithm is automatically trained on the first invocation of the recognize method or the cluster method if this training function has not been manually invoked. </p>
<dl class="section return"><dt>返回</dt><dd>true if the training had been successful or false if errors have occurred. </dd></dl>
<div class="fragment"><div class="line"><a name="l00085"></a><span class="lineno">   85</span>&#160;{</div>
<div class="line"><a name="l00086"></a><span class="lineno">   86</span>&#160;  <span class="keywordflow">if</span> (!<a class="code" href="classpcl_1_1_p_c_l_base.html#a09c70d8e06e3fb4f07903fe6f8d67869">input_</a>)</div>
<div class="line"><a name="l00087"></a><span class="lineno">   87</span>&#160;  {</div>
<div class="line"><a name="l00088"></a><span class="lineno">   88</span>&#160;    PCL_ERROR (<span class="stringliteral">&quot;[pcl::Hough3DGrouping::train()] Error! Input cloud not set.\n&quot;</span>);</div>
<div class="line"><a name="l00089"></a><span class="lineno">   89</span>&#160;    <span class="keywordflow">return</span> (<span class="keyword">false</span>);</div>
<div class="line"><a name="l00090"></a><span class="lineno">   90</span>&#160;  }</div>
<div class="line"><a name="l00091"></a><span class="lineno">   91</span>&#160; </div>
<div class="line"><a name="l00092"></a><span class="lineno">   92</span>&#160;  <span class="keywordflow">if</span> (!<a class="code" href="classpcl_1_1_hough3_d_grouping.html#ac15a3f73f40e24c79fcd74bf35ffe045">input_rf_</a>)</div>
<div class="line"><a name="l00093"></a><span class="lineno">   93</span>&#160;  {</div>
<div class="line"><a name="l00094"></a><span class="lineno">   94</span>&#160;    ModelRfCloudPtr new_input_rf (<span class="keyword">new</span> ModelRfCloud ());</div>
<div class="line"><a name="l00095"></a><span class="lineno">   95</span>&#160;    <a class="code" href="classpcl_1_1_hough3_d_grouping.html#a778fa8404b2562b23f3dcaf71a5afe58">computeRf</a> (<a class="code" href="classpcl_1_1_p_c_l_base.html#a09c70d8e06e3fb4f07903fe6f8d67869">input_</a>, *new_input_rf);</div>
<div class="line"><a name="l00096"></a><span class="lineno">   96</span>&#160;    <a class="code" href="classpcl_1_1_hough3_d_grouping.html#ac15a3f73f40e24c79fcd74bf35ffe045">input_rf_</a> = new_input_rf;</div>
<div class="line"><a name="l00097"></a><span class="lineno">   97</span>&#160;    <span class="comment">//PCL_ERROR(</span></div>
<div class="line"><a name="l00098"></a><span class="lineno">   98</span>&#160;    <span class="comment">//  &quot;[pcl::Hough3DGrouping::train()] Error! Input reference frame not set.\n&quot;);</span></div>
<div class="line"><a name="l00099"></a><span class="lineno">   99</span>&#160;    <span class="comment">//return (false);</span></div>
<div class="line"><a name="l00100"></a><span class="lineno">  100</span>&#160;  }</div>
<div class="line"><a name="l00101"></a><span class="lineno">  101</span>&#160; </div>
<div class="line"><a name="l00102"></a><span class="lineno">  102</span>&#160;  <span class="keywordflow">if</span> (<a class="code" href="classpcl_1_1_p_c_l_base.html#a09c70d8e06e3fb4f07903fe6f8d67869">input_</a>-&gt;size () != <a class="code" href="classpcl_1_1_hough3_d_grouping.html#ac15a3f73f40e24c79fcd74bf35ffe045">input_rf_</a>-&gt;size ())</div>
<div class="line"><a name="l00103"></a><span class="lineno">  103</span>&#160;  {</div>
<div class="line"><a name="l00104"></a><span class="lineno">  104</span>&#160;    PCL_ERROR (<span class="stringliteral">&quot;[pcl::Hough3DGrouping::train()] Error! Input cloud size != Input RF cloud size.\n&quot;</span>);</div>
<div class="line"><a name="l00105"></a><span class="lineno">  105</span>&#160;    <span class="keywordflow">return</span> (<span class="keyword">false</span>);</div>
<div class="line"><a name="l00106"></a><span class="lineno">  106</span>&#160;  }</div>
<div class="line"><a name="l00107"></a><span class="lineno">  107</span>&#160; </div>
<div class="line"><a name="l00108"></a><span class="lineno">  108</span>&#160;  <a class="code" href="classpcl_1_1_hough3_d_grouping.html#a857b94d7c2951510b6e4990e5561b049">model_votes_</a>.clear ();</div>
<div class="line"><a name="l00109"></a><span class="lineno">  109</span>&#160;  <a class="code" href="classpcl_1_1_hough3_d_grouping.html#a857b94d7c2951510b6e4990e5561b049">model_votes_</a>.resize (<a class="code" href="classpcl_1_1_p_c_l_base.html#a09c70d8e06e3fb4f07903fe6f8d67869">input_</a>-&gt;size ());</div>
<div class="line"><a name="l00110"></a><span class="lineno">  110</span>&#160; </div>
<div class="line"><a name="l00111"></a><span class="lineno">  111</span>&#160;  <span class="comment">// compute model centroid</span></div>
<div class="line"><a name="l00112"></a><span class="lineno">  112</span>&#160;  Eigen::Vector3f centroid (0, 0, 0);</div>
<div class="line"><a name="l00113"></a><span class="lineno">  113</span>&#160;  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; <a class="code" href="classpcl_1_1_p_c_l_base.html#a09c70d8e06e3fb4f07903fe6f8d67869">input_</a>-&gt;size (); ++i)</div>
<div class="line"><a name="l00114"></a><span class="lineno">  114</span>&#160;  {</div>
<div class="line"><a name="l00115"></a><span class="lineno">  115</span>&#160;    centroid += <a class="code" href="classpcl_1_1_p_c_l_base.html#a09c70d8e06e3fb4f07903fe6f8d67869">input_</a>-&gt;at (i).getVector3fMap ();</div>
<div class="line"><a name="l00116"></a><span class="lineno">  116</span>&#160;  }</div>
<div class="line"><a name="l00117"></a><span class="lineno">  117</span>&#160;  centroid /= <span class="keyword">static_cast&lt;</span><span class="keywordtype">float</span><span class="keyword">&gt;</span> (<a class="code" href="classpcl_1_1_p_c_l_base.html#a09c70d8e06e3fb4f07903fe6f8d67869">input_</a>-&gt;size ());</div>
<div class="line"><a name="l00118"></a><span class="lineno">  118</span>&#160; </div>
<div class="line"><a name="l00119"></a><span class="lineno">  119</span>&#160;  <span class="comment">// compute model votes</span></div>
<div class="line"><a name="l00120"></a><span class="lineno">  120</span>&#160;  <span class="keywordflow">for</span> (<span class="keywordtype">size_t</span> i = 0; i &lt; <a class="code" href="classpcl_1_1_p_c_l_base.html#a09c70d8e06e3fb4f07903fe6f8d67869">input_</a>-&gt;size (); ++i)</div>
<div class="line"><a name="l00121"></a><span class="lineno">  121</span>&#160;  {</div>
<div class="line"><a name="l00122"></a><span class="lineno">  122</span>&#160;    Eigen::Vector3f x_ax ((*<a class="code" href="classpcl_1_1_hough3_d_grouping.html#ac15a3f73f40e24c79fcd74bf35ffe045">input_rf_</a>)[i].x_axis[0], (*<a class="code" href="classpcl_1_1_hough3_d_grouping.html#ac15a3f73f40e24c79fcd74bf35ffe045">input_rf_</a>)[i].x_axis[1], (*<a class="code" href="classpcl_1_1_hough3_d_grouping.html#ac15a3f73f40e24c79fcd74bf35ffe045">input_rf_</a>)[i].x_axis[2]);</div>
<div class="line"><a name="l00123"></a><span class="lineno">  123</span>&#160;    Eigen::Vector3f y_ax ((*<a class="code" href="classpcl_1_1_hough3_d_grouping.html#ac15a3f73f40e24c79fcd74bf35ffe045">input_rf_</a>)[i].y_axis[0], (*<a class="code" href="classpcl_1_1_hough3_d_grouping.html#ac15a3f73f40e24c79fcd74bf35ffe045">input_rf_</a>)[i].y_axis[1], (*<a class="code" href="classpcl_1_1_hough3_d_grouping.html#ac15a3f73f40e24c79fcd74bf35ffe045">input_rf_</a>)[i].y_axis[2]);</div>
<div class="line"><a name="l00124"></a><span class="lineno">  124</span>&#160;    Eigen::Vector3f z_ax ((*<a class="code" href="classpcl_1_1_hough3_d_grouping.html#ac15a3f73f40e24c79fcd74bf35ffe045">input_rf_</a>)[i].z_axis[0], (*<a class="code" href="classpcl_1_1_hough3_d_grouping.html#ac15a3f73f40e24c79fcd74bf35ffe045">input_rf_</a>)[i].z_axis[1], (*<a class="code" href="classpcl_1_1_hough3_d_grouping.html#ac15a3f73f40e24c79fcd74bf35ffe045">input_rf_</a>)[i].z_axis[2]);</div>
<div class="line"><a name="l00125"></a><span class="lineno">  125</span>&#160; </div>
<div class="line"><a name="l00126"></a><span class="lineno">  126</span>&#160;    <a class="code" href="classpcl_1_1_hough3_d_grouping.html#a857b94d7c2951510b6e4990e5561b049">model_votes_</a>[i].x () = x_ax.dot (centroid - <a class="code" href="classpcl_1_1_p_c_l_base.html#a09c70d8e06e3fb4f07903fe6f8d67869">input_</a>-&gt;at (i).getVector3fMap ());</div>
<div class="line"><a name="l00127"></a><span class="lineno">  127</span>&#160;    <a class="code" href="classpcl_1_1_hough3_d_grouping.html#a857b94d7c2951510b6e4990e5561b049">model_votes_</a>[i].y () = y_ax.dot (centroid - <a class="code" href="classpcl_1_1_p_c_l_base.html#a09c70d8e06e3fb4f07903fe6f8d67869">input_</a>-&gt;at (i).getVector3fMap ());</div>
<div class="line"><a name="l00128"></a><span class="lineno">  128</span>&#160;    <a class="code" href="classpcl_1_1_hough3_d_grouping.html#a857b94d7c2951510b6e4990e5561b049">model_votes_</a>[i].z () = z_ax.dot (centroid - <a class="code" href="classpcl_1_1_p_c_l_base.html#a09c70d8e06e3fb4f07903fe6f8d67869">input_</a>-&gt;at (i).getVector3fMap ());</div>
<div class="line"><a name="l00129"></a><span class="lineno">  129</span>&#160;  }</div>
<div class="line"><a name="l00130"></a><span class="lineno">  130</span>&#160; </div>
<div class="line"><a name="l00131"></a><span class="lineno">  131</span>&#160;  <a class="code" href="classpcl_1_1_hough3_d_grouping.html#a565b7cd857b83ecfb6b89c64c2fc4067">needs_training_</a> = <span class="keyword">false</span>;</div>
<div class="line"><a name="l00132"></a><span class="lineno">  132</span>&#160;  <span class="keywordflow">return</span> (<span class="keyword">true</span>);</div>
<div class="line"><a name="l00133"></a><span class="lineno">  133</span>&#160;}</div>
</div><!-- fragment -->
</div>
</div>
<hr/>该类的文档由以下文件生成:<ul>
<li>recognition/include/pcl/recognition/cg/<a class="el" href="hough__3d_8h_source.html">hough_3d.h</a></li>
<li>recognition/include/pcl/recognition/impl/cg/<a class="el" href="hough__3d_8hpp_source.html">hough_3d.hpp</a></li>
</ul>
</div><!-- contents -->
</div><!-- doc-content -->
<!-- start footer part -->
<div id="nav-path" class="navpath"><!-- id is needed for treeview function! -->
  <ul>
    <li class="navelem"><b>pcl</b></li><li class="navelem"><a class="el" href="classpcl_1_1_hough3_d_grouping.html">Hough3DGrouping</a></li>
    <li class="footer">制作者 <a href="https://www.doxygen.org/index.html"><img class="footer" src="doxygen.svg" width="104" height="31" alt="doxygen"/></a> 1.9.1 </li>
  </ul>
</div>
</body>
</html>
